在安装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 -m pip install -user {package name}

该命令不需要sudo。这是在OSX Mojave上测试的。

其他回答

大多数可能的情况已经在解决方案中涵盖,只是分享我的案例,我碰巧在一个环境中安装了一个包(例如X),而我正在另一个环境中导入包(例如Y)。因此,始终确保您从安装包的环境中导入包。

在重新定位的虚拟环境(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

我知道这是一个超级老的帖子,但对我来说,我有一个32位python和64位python安装的问题。一旦我卸载了32位的python,一切都正常工作了。

我无法让PYTHONPATH正常工作。我意识到添加export修复了这个问题:

(工作)

export PYTHONPATH=$PYTHONPATH:~/test/site-packages

vs.

(没有工作)

PYTHONPATH=$PYTHONPATH:~/test/site-packages

对我有用的是:

python -m pip install -user {package name}

该命令不需要sudo。这是在OSX Mojave上测试的。