在安装mechanize后,我似乎无法导入它。
我已经尝试从pip、easy_install和通过python setup.py从这个repo安装:https://github.com/abielr/mechanize。所有这些都无济于事,因为每次我输入Python交互时,我得到:
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mechanize
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named mechanize
>>>
我之前运行的安装报告已经成功完成,因此我希望导入能够正常工作。是什么导致了这个错误?
这是python路径问题。
在我的例子中,我安装了python:
/Library/Frameworks/Python.framework/Versions/2.6/bin/python,
在python2.6中没有site-packages目录。
找到我用pip安装的包(SOAPpy)
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
并且site-package不在python路径中,我所做的只是将site-packages永久地添加到PYTHONPATH中。
打开终端
输入open .bash_profile
在弹出的文本文件中,在最后添加这行:
出口到PYTHONPATH = $ PYTHONPATH: /系统/图书馆/框架/ Python.framework /版本/ 2.6 / lib / python2.6 /网站/
保存文件,重新启动终端,就完成了
在重新定位的虚拟环境(venv)中也会出现此问题。
我有一个项目,在根目录中设置了venv。后来我创建了一个新用户,并决定将项目移动到这个用户。我没有只移动源文件并重新安装依赖项,而是将整个项目连同venv文件夹一起移动到新用户。
在此之后,我安装的依赖项被添加到全局site-packages文件夹中,而不是venv中的文件夹中,因此在这个env中运行的代码无法访问这些依赖项。
要解决这个问题,只需删除venv文件夹并重新创建它,如下所示:
$ deactivate
$ rm -rf venv
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install -r requirements.txt