2012-10-18 122 views
1

我最近從Python.org安裝了Python 3.3 DMG。Python 3.3在OSX上找不到任何pip安裝包?

我安裝了pip,virtualenv和virtualenv-wrapper。

當我這樣做:

$ mkvirtualenv -p /usr/local/bin/python3 someenv 

環境得到預期創建。

當我然後做一個點子安裝,好比說:

(someenv) $ pip install beautifulsoup4 

它正確地(沒有錯誤)安裝。

當我再火了蟒蛇:

(someenv) $ python 
Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 01:25:11) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import bs4 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named 'bs4' 

我也嘗試了一些其他的包:pytz,pymemoize,模擬,並且似乎都來自同一個遭受「命名無模塊...」問題。

看着虛擬環境的站點包目錄,包就在那裏,只是解釋器似乎無法找到它們。如果我做了pip freeze列出了所有安裝的軟件包。

有什麼建議嗎?

如果有幫助,我使用的是:

  • 的Python 3.3
  • PIP V1.2.1
  • 的virtualenv,包裝v1.8.2的(再次,從Python.org中的.dmg安裝)
  • 分發0.6.28
  • OSX 10.7(獅子)

編輯:如要求,OUTP的sys.path UT是:

['', '/Library/Frameworks/Python.framework/Versions/3.3/lib/python33.zip', 
'/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3', 
'/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/plat-darwin', 
'/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/lib-dynload', 
'/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages'] 

正因爲如此現在缺少的是:'/Users/aparkin/.envs/someenv/lib/python3.3/site-packages' - 虛擬環境的site-packages目錄。

編輯2:爲好,做對site-packages目錄的ls -l給出:

$ ls -l .envs/someenv/lib/python3.3/site-packages/ 
total 168 
drwxr-xr-x 7 aparkin staff 238 18 Oct 11:49 PyMemoize-0.1.1-py3.3.egg-info 
drwxr-xr-x 3 aparkin staff 102 18 Oct 11:51 __pycache__ 
drwxr-xr-x 7 aparkin staff 238 18 Oct 11:34 beautifulsoup4-4.1.3-py3.3.egg-info 
drwxr-xr-x 9 aparkin staff 306 18 Oct 11:32 bs4 
drwxr-xr-x 8 aparkin staff 272 18 Oct 11:31 distribute-0.6.28-py3.3.egg 
-rw-r--r-- 1 aparkin staff 237 18 Oct 11:31 easy-install.pth 
drwxr-xr-x 6 aparkin staff 204 18 Oct 11:49 memoize 
drwxr-xr-x 7 aparkin staff 238 18 Oct 11:51 mock-1.0.0-py3.3.egg-info 
-rw-r--r-- 1 aparkin staff 75204 18 Oct 11:51 mock.py 
drwxr-xr-x 4 aparkin staff 136 18 Oct 11:31 pip-1.2.1-py3.3.egg 
drwxr-xr-x 9 aparkin staff 306 18 Oct 11:44 pytz 
drwxr-xr-x 8 aparkin staff 272 18 Oct 11:44 pytz-2012f-py3.3.egg-info 
-rw-r--r-- 1 aparkin staff  30 18 Oct 11:31 setuptools.pth 

回答

4

的Python 3.3的一個新功能是創建和管理虛擬環境,pyvenv的標準方法。你應該改用它。

這就是說,你仍然應該可以使舊的virtualenv工作。有一點需要檢查,當使用失敗的virtualenv python時,值爲sys.path。你應該看到它上面的virtualenv site-packages目錄。如果是這樣,並且導入仍然無效,請檢查virtualenv lib目錄,包括site-packages以獲取正確的文件權限。

更新:第一眼看上去virtualenv site-packages的內容看起來很合理。但sys.path的值看起來像標準python3.3的可疑值,而不是從virtualenv運行的值。所以檢查一下,確保你真的在使用那個。嘗試用絕對路徑運行的virtualenv蟒蛇,如:

/path/to/someenv/bin/python3.3 -c 'import sys;print(sys.executable);print(sys.path)' 

另外,還要確保你有設置,像PYTHONPATH或shell別名或功能python沒有的Python相關的環境變量。

env | grep PYTHON 
echo $PATH 
which python 
type python 
+0

我知道pyvenv,但假設我以前使用的虛擬環境實用程序仍然可以與Python 3.3一起工作。是不是這種情況(即,您是否需要使用pyvenv和Python 3.3來實現虛擬環境)?看看'sys.path'我沒有看到虛擬環境'site-packages'目錄,爲什麼會這樣,或者如何解決它(短時間執行'sys.path.append(...)'在我寫的任何腳本中)? –

+0

那麼有些事情是錯的。我只是嘗試使用相同的python.org python3.3來安裝'distribute','pip'和'virtualenv',並且'pip'似乎按照預期安裝了軟件包。雖然我沒有嘗試'mkvirtualenv'。你可以更新你的問題來包含你看到的'sys.path'的值和'ls -l /lib/python3.3/site-packages /'的結果。 –

+0

ok,sys.path和ls輸出添加到問題中。 –

0

我認爲這是因爲您在終端中爲python設置了alias

如果您使用zsh,只需使用編輯器(例如vim)打開~/.zshrc,然後刪除python的別名,然後在終端中運行source ~/.zshrc或關閉終端窗口並重新打開它。

如果你不使用zsh,原理是一樣的,只需刪除別名即可。

這將解決您的問題。

相關問題