【问题标题】:Python 3.3 cannot find any pip installed package on OSX?Python 3.3 在 OSX 上找不到任何 pip 安装包?
【发布时间】:2012-10-09 07:56:29
【问题描述】:

我最近从 Python.org 安装了 Python 3.3 DMG。

我已经安装了 pip、virtualenv 和 virtualenv-wrapper。

当我这样做时:

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

环境按预期创建。

当我进行 pip 安装时,比如说:

(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,它们似乎都遇到了同样的“没有名为...的模块”的问题。

查看虚拟环境的站点包目录,包就在那里,只是解释器似乎找不到它们。如果我执行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:同样,在 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

【问题讨论】:

    标签: macos virtualenv pip virtualenvwrapper python-3.3


    【解决方案1】:

    Python 3.3 的一个新特性是创建和管理虚拟环境的标准方法,pyvenv。你应该改用它。

    也就是说,您仍然应该能够使旧的virtualenv 工作。要检查的一件事是使用失败的 virtualenv pythonsys.path 的值。您应该会在其上看到 virtualenv site-packages 目录。如果是这样并且导入仍然不起作用,请检查 virtualenv lib 目录,包括 site-packages 以获得正确的文件权限。

    更新: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)'
    

    还要确保您没有设置与 Python 相关的环境变量,例如 PYTHONPATHpython 的 shell 别名或函数。

    env | grep PYTHON
    echo $PATH
    which python
    type python
    

    【讨论】:

    • 我知道 pyvenv,但假设我之前使用的虚拟环境实用程序仍然适用于 Python 3.3 是不是这样(即您是否需要使用pyvenv 与 Python 3.3 用于虚拟环境)?查看sys.path 我没有看到虚拟环境site-packages 目录,有什么原因,或者如何解决它(在我编写的任何脚本中都没有做sys.path.append(...))?
    • 那么有问题了。我刚刚尝试使用相同的 python.org python3.3 和 pip 安装 distributepipvirtualenv 似乎可以按预期安装软件包。我没有尝试mkvirtualenv。您可以更新您的问题以包含您看到的sys.path 的值和ls -l &lt;someenv&gt;/lib/python3.3/site-packages/ 的结果。
    • 好的,很抱歉评论晚了,我生病了,下班了(以及这台电脑)。跟进:python3 的绝对路径显示正确的sys.pathpython(第 3 个)的绝对路径,显示 不正确 sys.path。如果我只是做python3 导入工作正常,但python 得到一个不正确的sys.path & 因此导入不起作用(如问题中所述)。所以一个简单的解决方法是总是做python3,但我想知道为什么会这样。 env 命令不显示任何输出,$PATH 中的第一项是虚拟环境的路径。
    【解决方案2】:

    我认为这是因为您在终端中为 python 设置了alias

    如果您使用zsh,只需使用编辑器(例如vim)打开~/.zshrc,并删除python的别名,然后在终端中运行source ~/.zshrc或关闭终端窗口并重新打开它。

    如果不使用zsh,原理一样,删除别名即可。

    这将解决您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 2022-10-30
      • 2018-03-16
      • 2017-07-12
      • 2015-02-28
      相关资源
      最近更新 更多