在安装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导入机制确实有效,所以:

你的PYTHONPATH是错误的, 您的库没有安装在您认为的位置 您有另一个具有相同名称的库来掩盖这个库

其他回答

对我来说最简单的解决方案,但我在这篇文章中没有提到:

我安装了多个版本的Python,但试图使用Python3.7 -所以我必须使用:

Sudo pip3.7 install <package> . sh

就像一个朋友今天为我做的那样,下面是帮助我的方法(我正在使用Windows):

按“设置”->“项目”->“项目解释器”。在右边的窗口中,左边有一行标题为“Project Interpreter”。单击该行,它将打开其他几行。

现在按下“显示全部”行。一扇窗会打开。 在这个窗口中,按下右上角的小“+”符号。

将打开一个新窗口。在左边有4个标签,按最上面的一个,上面写着“Virtualenv环境”。 现在,在右边的窗口中,标记‘Existing Environment’选项。'Interpreter'行将变得清晰可见。按“…”’按钮在行右边。

现在,一个浏览窗口将打开。浏览到安装Python本身的目录。不是有PyCharm的那个。当你到达那里,选择'python.exe'文件并按OK(窗口将消失)。

再次按OK(此窗口也将消失)。

现在在这个窗口中,确保您创建的新行被标记,并再次按OK。

现在,所有安装的包都应该在项目解释器中可见,并由程序读取。

我也遇到过同样的问题,但上面的答案都没用。我快被逼疯了,直到我注意到那个系统。当我从父项目导入后,路径就不同了。原来我用importlib写了一个小函数来导入一个不在项目层次结构中的文件。坏主意:我忘了我做过这件事。更糟糕的是,导入过程搅乱了系统。路径,然后就这样走了。非常糟糕的主意。

解决方案是停止这种情况,并简单地将我需要导入的文件导入到项目中。另一种方法是将文件放到它自己的项目中,因为它需要不时地重新构建,并且重新构建可能与主项目的重新构建不一致。

我通过一种组合方法纠正了这个问题。首先,我听从克里斯的建议,打开命令行,输入“pip show packagename” 这提供了已安装包的位置。

接下来,我打开python,输入“import sys”,然后输入“sys”。path'来显示我的python在哪里搜索我导入的任何包。唉,第一步中显示的位置不在列表中。

最后一步,我输入“sys.path.append('package_location_seen_in_step_1')”。您可以选择重复步骤2,以查看位置现在在列表中。

测试步骤,尝试再次导入包…它的工作原理。

缺点呢?它是临时的,每次都需要将其添加到列表中。

我已经通过pip安装了colorama,我得到了“ImportError: No module named colorama”

所以我用“find”搜索,找到了绝对路径,并像这样将它添加到脚本中:

import sys
sys.path.append("/usr/local/lib/python3.8/dist-packages/")
import colorama 

这招奏效了。