沒有名爲pkg_resources的模塊

我正在將一個Django應用程序部署到開發服務器,並在運行pip install -r requirements.txt時遇到此錯誤: python

Traceback (most recent call last):
  File "/var/www/mydir/virtualenvs/dev/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

pkg_resources彷佛隨setuptools一塊兒setuptools 。 最初我認爲這可能沒有安裝到virtualenv中的Python,因此我使用如下命令將setuptools 2.6 (與Python相同的版本)安裝到virtualenv中的Python站點包: bootstrap

sh setuptools-0.6c11-py2.6.egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages

編輯:這隻發生在virtualenv內。 若是我在virtualenv以外打開一個控制檯,那麼存在pkg_resources ,但我仍然遇到一樣的錯誤。 ubuntu

關於爲何pkg_resources不在路徑上的任何想法? 服務器


#1樓

2018年7月更新 app

大多數人如今應該使用pip install setuptools (可能使用sudo )。 curl

有些人可能須要(從新)經過他們的包管理器安裝python-setuptools包( apt-get installyum install等)。 ui

此問題可能高度依賴於您的操做系統和開發環境。 若是以上內容不適合您,請參閱下面的遺產/其餘答案。 url

說明 spa

此錯誤消息是由缺乏/損壞的Python setuptools包引發的。 Per Matt M.的註釋和setuptools問題#581下面提到的引導腳本再也不是推薦的安裝方法。 操作系統

引導腳本說明將保留在下面,以防它對任何人都有幫助。

遺產答案

我在嘗試使用pip時遇到了一樣的ImportError 。 不知何故,個人Python環境中刪除了setuptools包。

要解決此問題,請運行setuptools的安裝腳本:

wget https://bootstrap.pypa.io/ez_setup.py -O - | python

(或者若是您沒有安裝wget (例如OS X),請嘗試

curl https://bootstrap.pypa.io/ez_setup.py | python

可能有sudo前置。)

若是你有任何版本的distribute版或任何低於0.6的setuptools ,你必須先卸載它。*

有關詳細信息,請參閱安裝說明


*若是您已經有工做distribute ,將其升級到「兼容包裝」,將您切換到setuptools更容易。 但若是事情已經破裂,不要試試。


#2樓

當我將virtualenv激活爲與建立它的人不一樣的用戶時,我遇到了這個問題。 這彷佛是一個許可問題。 當我嘗試@cwc的答案並在輸出中看到這個時,我發現了這個:

Installing easy_install script to /path/env/bin
error: /path/env/bin/easy_install: Permission denied

切換回建立virtualenv的用戶,而後運行原始pip install命令沒有問題。 但願這能夠幫助!


#3樓

我今天也遇到了這個問題。 我只在虛擬環境中遇到問題。

個人解決方案是停用虛擬環境,刪除而後用pip卸載virtualenv並從新安裝它。 以後我爲個人項目建立了一個新的虛擬環境,而後pip在虛擬環境中和正常環境同樣工做正常。


#4樓

它也發生在我身上。 我認爲若是在virtualenv使用setuptools時,requirements.txt包含「distribute」條目,則會出現問題。 Pip將嘗試修補setuptools以便爲分發騰出空間,但不幸的是它會在一半時間內失敗。

簡單的解決方案是刪除當前的virtualenv,而後使用--distribute參數建立一個新的virtualenv。

使用virtualenvwrapper的一個例子:

$ deactivate
$ rmvirtualenv yourenv
$ mkvirtualenv yourenv --distribute
$ workon yourenv
$ pip install -r requirements.txt

#5樓

嘗試在ubuntu 13.10上安裝rhodecode到virtualenv時,我看到了這個錯誤。 對我來講,解決方案是運行

pip install --upgrade setuptools
pip install --upgrade distribute

在我運行easy_install rhodecode以前。

相關文章
相關標籤/搜索