Python OSX 中 $ which Python 返回 /Library/Frameworks/Python.framework/Versions/2.7/bin/python
你好,我正在尝试在 Python 中使用 twisted,但是 Python 找不到 twisted。
我已经成功运行了 $pip install twisted,但是它还是无法使用。
导入错误:没有名为 twisted.internet.protocol 的模块
看起来大多数人的 $which python 显示的是 /usr/local/bin/python
而我得到的是 /Library/Frameworks/Python.framework/Versions/2.7/bin/python
这可能是问题所在吗?如果是的话,我该如何更改 PATH 环境变量?
4 个回答
我也遇到了一个错误,提示说 ImportError: No module named xxx
,虽然我已经用 pip install xxx
和 pip2 install xxx
安装过了。最后我用 pip2.7 install xxx
成功了。这条命令把它安装到了 Python 2.7 的目录里。
好的,在终端里我终于找到了:
打开位于你用户根目录下的 .bash_profile 文件(只需在终端输入 $cd
就可以到达那里),然后添加 twisted 的路径。
PYTHONPATH="/usr/local/lib/python2.7/site-packages:$PYTHONPATH"
export PYTHONPATH
根据你给的OS X Python路径,我猜你的OS X版本可能有点旧(可能是豹猫系统?),所以我没法直接和我的机器做比较。
不过,在OS X上添加软件包总是有点麻烦。我建议你检查一下你添加的任何软件包的权限。可以运行一下这个命令:ls -l /Library/Python/2.7/site-packages/
,确保所有的文件都有r
(读)权限,文件夹还要有x
(执行)权限。也就是说,应该是像-rwxr-xr-x
或者drwxr-xr-x
这样的格式。
我最近遇到过一个情况,就是用sudo pip
安装的包没有设置用户的读权限,结果我在使用这些包的时候就出现了“No module”的错误。
因为在OS X上添加软件包很麻烦,所以网上有很多关于手动安装Python的指南。我在谷歌上找到的第一个是在OS X上安装/更新Python(使用时请自行判断风险,我个人没有按照这个指南操作过)。
(... 第三方安装系统Brew也是很多人用来自动安装Python的常见方法。)
没问题的。
Python可能在你电脑的多个地方安装。
当你买了新的Mac时,默认的Python目录可能是
'usr/bin/python2.7'
你可能还有一个目录在
'System/Library/Frameworks/Python.framework/Versions/2.7/bin/python'
第一个目录是第二个目录的一个链接。
如果你用HomeBrew来安装Python,你可能会在
'usr/local/bin/python2.7'
找到一个目录。
你可能还会有一个目录在
'Library/Frameworks/Python.framework/Versions/2.7/bin/python'
这正是我目录的位置。
第二个目录和第四个目录之间的区别,你可以在这里找到
安装你的框架在你的问题中,你提到pip安装成功,但安装的包还是不可用。我猜测你的pip目录不在默认的Python目录里,包是安装在你的pip目录里的。(请使用'which pip'
来检查一下)
例如,在我的电脑上,默认的pip目录是
/Library/Frameworks/Python.framework/Versions/2.7/bin/pip
不过,我在usr/local/bin也有pip。
所以,我通过'pip install'安装的所有包都存储在
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
希望这能解决你的疑问。类似的事情我也遇到过,花了我一整晚才搞明白。
这里有个解决办法:
使用PYTHONPATH="/usr/local/lib/python2.7/site-packages:$PYTHONPATH"
来修改你的Python目录,或者修改你的pip目录。
不过,我建议一个更好的方法,使用virtualenv。这个工具可以隔离Python环境,帮助你为每个项目轻松设置包。