首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3.3在OSX上找不到已安装的pip软件包?

Python 3.3在OSX上找不到已安装的pip软件包?
EN

Stack Overflow用户
提问于 2012-10-18 18:54:52
回答 2查看 3K关注 0票数 2

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

我安装了pip、virtualenv和virtualenv包装器。

当我这么做时:

代码语言:javascript
复制
$ mkvirtualenv -p /usr/local/bin/python3 someenv

环境是按预期创建的。

当我做一个pip安装时,比如:

代码语言:javascript
复制
(someenv) $ pip install beautifulsoup4

它安装正确(没有错误)。

当我启动python时:

代码语言:javascript
复制
(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,所有已安装的软件包都会列出。

有什么建议吗?

如果有用的话,我用的是:

  • Python3.3(同样是从.dmg at Python.org安装的)
  • pip v1.2.1
  • virtualenv包装器v1.8.2
  • 分发0.6.28
  • OSX 10.7 (狮子)

编辑:根据请求,sys.path的输出是:

代码语言:javascript
复制
['', '/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目录上执行ls -l会给出:

代码语言:javascript
复制
$ 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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-18 19:42:48

Python3.3的一个新特性是创建和管理虚拟环境( 皮文夫 )的标准方法。你应该用它代替。

尽管如此,您仍然应该能够使旧的virtualenv工作。需要检查的一件事是,当使用失败的virtualenv sys.path时,python的值。您应该会看到它上的site-packages目录。如果是这样,导入仍然不能工作,请检查虚拟库目录(包括site-packages )以获得正确的文件权限。

更新:乍一看,virtualenv site-packages的内容看起来很合理。但是,sys.path的值看起来与标准python3.3的值类似,而不是从virtualenv中运行的。所以,检查一下,以确保你真的在使用那个。尝试使用绝对路径运行virtualenv python,如:

代码语言:javascript
复制
/path/to/someenv/bin/python3.3 -c 'import sys;print(sys.executable);print(sys.path)'

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

代码语言:javascript
复制
env | grep PYTHON
echo $PATH
which python
type python
票数 4
EN

Stack Overflow用户

发布于 2016-06-26 04:31:21

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

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

如果您不使用zsh,原则是相同的,只需删除别名。

这会解决你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12961761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档