macos - Python 3.3 在 OSX 上找不到任何 pip 安装包?

标签 macos virtualenv pip virtualenvwrapper python-3.3

我最近从 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,所有这些软件包似乎都遇到了相同的“没有名为...的模块”问题。

查看虚拟环境的site-packages目录,包就在那里,只是解释器似乎找不到它们。如果我执行pip freeze,则会列出所有已安装的软件包。

有什么建议吗?

如果有帮助,我正在使用:

  • Python 3.3(同样是从 Python.org 上的 .dmg 安装的)
  • pip v1.2.1
  • virtualenv-wrapper v1.8.2
  • 分发 0.6.28
  • OSX 10.7(Lion)

编辑:根据要求,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”——虚拟环境的 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

最佳答案

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 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

关于macos - Python 3.3 在 OSX 上找不到任何 pip 安装包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12961761/

相关文章:

java - 终端动画 - 清除屏幕是正确的方法吗?

python - 打包可执行文件、共享库和 Python 绑定(bind)未找到库

python - 带有替代索引的 pip requirements.txt

python - 我应该在生产 dockerfile 中使用 Poetry 吗?

objective-c - 如何在 NSTableView 中显示行数

python - 启动 Jupyterlab 时出现问题

macos - 使用 cocoa 检测挂起的系统关闭

python - 当我在 virtualenv 中时无法 pip 安装包

virtualenv - 包通过 pip 安装在错误的 (src) 目录而不是站 pip 包中

python - 在项目中列出第三方库