2013-06-20 50 views
6

我已經安裝了金字塔併成功創建了一個項目,但是當我嘗試將新包添加到setup.py要求時,他們總是給我一個pkg_resources.DistributionNotFound錯誤。如何在沒有獲取pkg_resources.DistributionNotFound的情況下安裝金字塔的新包:一旦創建項目

軟件包已安裝,只有在運行../bin/python3.3 setup.py開發後嘗試安裝新軟件包時,纔會發生這種情況無論它是什麼軟件包都無所謂。

我已經解決了(不是真的)的唯一方法是在創建項目並運行setup.py開發之前設置新的虛擬環境並安裝軟件包。

顯然我做錯了什麼。在pip安裝軟件包之前有什麼需要做的嗎?這是一種路徑問題嗎?我是新來的,所以你的幫助將非常感激!

* 添加我的安裝過程,以防有人碰巧看到有問題。還包括我的wsgi文件。

創建的virtualenv easy_install-3.3 env

激活的virtualenv source env/bin/activate

安裝金字塔 cd env ./bin/easy_install-3.3 pyramid

創建了一個項目 ./bin/pcreate -s starter myprojectname

冉setup.py cd myprojectname ../bin/python3.3 setup.py develop

在這一點上,我得到以下錯誤:pkg_resources.DistributionNotFound:女服務員

安裝女服務員 ../bin/easy_install-3.3 waitress

冉的setup.py再次(不知道我是否應該正在做這個) ../bin/python3.3 setup.py develop

還看錯誤

我.wsgi文件包含以下(不知道這是否是對這個問題或不重要): activate_this = "/home/account/env/bin/activate_this.py" execfile(activate_this,dict(__file__=activate_this))

import os import sys

path = '/home/account/env/lib/python3.3/site-packages'

if path not in sys.path: sys.path.append(path)

from pyramid.paster import get_app application = get_app('/home/account/env/myprojectname/production.ini', 'main')

回答

3

PIP和setup.py develop不應進行混合。後者使用easy_install,它在名稱空間包的情況下與pip不兼容(這些包是作爲另一個父包的子包安裝的,比如zope.sqlalchemy只安裝完整zope。*包的.sqlalchemy部分)。命名空間包在pip和easy_install之間導致問題。另一方面,大多數其他軟件包可以在您選擇的任何系統上正常工作,但最好保持一致。

另一件要仔細檢查的事情是,你實際上是將軟件包安裝到你的virtualenv中。你應該能夠在virtualenv中打開python cli並導入包。如果你不能,那麼它可能沒有安裝。

+0

感謝邁克爾 - 我簡化我僅在安裝和使用eas_install並沒有解決它。我也能夠在我的virtualenv中使用python導入軟件包。 –

+0

只是要確保我做了python導入步驟正確 - 這是我做的檢查:#../bin/python3.3 #import女服務員 –

+0

猜猜邁克爾 - 我做了相反的事情,並使用所有的pip安裝和pip安裝-e。而不是setup.py開發,它似乎工作。非常感謝你的幫助!!! –

5

使用邁克爾的建議,我能解決他的問題。我甚至不需要手動安裝任何軟件包。一旦一切正常,如果我向我的setup.py文件(在製作金字塔項目時創建)中添加了一項要求,然後運行pip install -e。再次,一切都完美安裝。問題是由我如何安裝東西引起的。這是我的情況下,最終的過程中它可以幫助其他新手到金字塔:

  1. 創建一個虛擬的環境 virtualenv-3.3 env

  2. 激活包膜 source env/bin/activate

  3. 搬到環境目錄 cd env

  4. 安裝金字塔 pip install pyramid

  5. 創建了一個項目 ./bin/pcreate -s starter myprojectname

  6. 搬到我的項目目錄 cd megaproject

  7. 冉安裝 pip install -e .

  8. 更新了我的WSGI文件與我的env和項目設置

  9. 重新加載應用程序,並雀躍看到可愛的金字塔起始頁面

相關問題