2

最近、Python.org から Python 3.3 DMG をインストールしました。

pip、virtualenv、および virtualenv-wrapper がインストールされています。

私がする時:

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

環境は期待どおりに作成されます。

次に pip install を実行すると、次のようになります。

(someenv) $ pip install beautifulsoup4

正しくインストールされます (エラーなし)。

次にpythonを起動すると:

(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、mock など、他のいくつかのパッケージも試してみましたが、すべて同じ「No module named ...」という問題に悩まされているようです。

仮想環境の site-packages ディレクトリを見ると、パッケージがそこにありますが、インタープリターがそれらを見つけられないように見えるだけです。インストールされているpip freezeすべてのパッケージが一覧表示されます。

助言がありますか?

それが役立つ場合、私は使用しています:

  • Python 3.3 (これも Python.org の .dmg からインストール)
  • ピップ v1.2.1
  • virtualenv-wrapper v1.8.2
  • 配布 0.6.28
  • OSX 10.7 (ライオン)

編集:要求に応じて、の出力sys.pathは次のとおりです。

['', '/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」-仮想環境のサイトパッケージディレクトリ。

編集 2: 同様ls -lに、site-packages ディレクトリで実行すると、次のようになります。

$ 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

2 に答える 2

4

Python 3.3 の新機能は、仮想環境を作成および管理するための標準的な方法であるpyvenvです。代わりにそれを使用する必要があります。

とは言っても、古いvirtualenv作業を行うことができるはずです。sys.path確認すべきことの 1 つは、失敗した virtualenv を使用するときの値ですpython。その上にvirtualenvsite-packagesディレクトリが表示されます。その場合でもインポートが機能しない場合site-packagesは、適切なファイル権限を含む virtualenv lib ディレクトリを確認してください。

更新: virtualenv の内容はsite-packages一見妥当に見えます。しかし、 の値はsys.path疑わしいことに標準の値のように見えpython3.3ますvirtualenv。そのため、実際にそれを使用していることを確認してください。次のように、virtualenv python を絶対パスで実行してみてください。

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

PYTHONPATHまた、シェル エイリアスや の関数など、Python 関連の環境変数が設定されていないことを確認してくださいpython

env | grep PYTHON
echo $PATH
which python
type python
于 2012-10-18T19:42:48.973 に答える
0

alias端末で for pythonを設定したためだと思います。

zsh を使用する場合は、エディター (vim など) を使用して を開き~/.zshrc、python のエイリアスを削除してから、ターミナルで実行source ~/.zshrcするか、ターミナル ウィンドウを閉じて再度開きます。

zsh を使用しない場合、原則は同じで、別名を削除するだけです。

これで問題は解決します。

于 2016-06-26T04:31:21.643 に答える