无法导入肯定是安装一个模块(Unable to import a module that is de

2019-07-18 03:40发布

安装完成后机械化 ,我似乎并没有能够将其导入。

我试图从PIP安装,easy_install的,并通过python setup.py install此回购: 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
>>> 

我先前运行的设备报告说,他们成功地完成了,所以我希望导入工作。 这可能是造成这个错误?

Answer 1:

就我而言,这是权限的问题。 该软件包在某种程度上具有root权限RW只安装,其他用户就不能RW吧!



Answer 2:

我有同样的问题:与脚本import colorama被扔和导入错误,但sudo pip install colorama告诉我“已安装的软件包”。

我的解决办法:运行PIP 没有sudo: pip install colorama 。 然后PIP同意它需要安装,安装了它,我的脚本运行。

我的环境是Ubuntu的14.04 32位; 我想我以前看到这个后,我激活了我的virtualenv。

UPDATE:更妙的是,使用python -m pip install <package> 。 这样做的好处是,因为你是在执行您想要在包蟒蛇的特定版本,PIP将毫不含糊地以“正确的”蟒蛇安装软件包。 同样,在这种情况下, 不要使用sudo ...然后你(无用)root权限获取在正确的地方的包,但可能。



Answer 3:

这是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/

和站点包是不是在Python路径,我所做的就是添加站点包永久PYTHONPATH。

  1. 打开终端
  2. 类型开放的.bash_profile
  3. 在弹出的文本文件,在末尾加上这一行:

    出口PYTHONPATH = $ PYTHONPATH:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/

  4. 保存文件,重新启动终端,就大功告成了


Answer 4:

Python的进口机制的工作,真的,所以,无论是:

  1. 你PYTHONPATH是错误的,
  2. 您的库没有安装,你认为这是
  3. 您有另一个同名的库屏蔽这一个


Answer 5:

我一直在敲打我的头靠在我的显示器上,直到一个年轻的髋实习生告诉我的秘诀就是“蟒蛇的setup.py安装” 模块目录内。

出于某种原因,从那里运行安装使得它只是工作。

需要明确的是,如果你的模块的名称是“福”:

[burnc7 (2016-06-21 15:28:49) git]# ls -l
total 1
drwxr-xr-x 7 root root  118 Jun 21 15:22 foo
[burnc7 (2016-06-21 15:28:51) git]# cd foo
[burnc7 (2016-06-21 15:28:53) foo]# ls -l
total 2
drwxr-xr-x 2 root root   93 Jun 21 15:23 foo
-rw-r--r-- 1 root root  416 May 31 12:26 setup.py
[burnc7 (2016-06-21 15:28:54) foo]# python setup.py install
<--snip-->

如果试图通过呼叫其路径运行任何其他目录setup.py,你最终有一个borked安装。

不工作:

python /root/foo/setup.py install

不工作:

cd /root/foo
python setup.py install


Answer 6:

我不能让我的PYTHONPATH正常工作。 我意识到增加export解决了该问题:

(没有工作)

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

(不工作)

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


Answer 7:

在我来说,我已经跑pip install Django==1.11 ,它不会从导入python解释器。

通过PIP的命令浏览我发现pip show其是这样的:

> pip show Django
Name: Django
Version: 1.11
...
Location: /usr/lib/python3.4/site-packages
...

注意,位置写着“3.4”。 我发现python -command被挂python2.7

/usr/bin> ls -l python
lrwxrwxrwx 1 root root 9 Mar 14 15:48 python -> python2.7

旁边,我发现了一个名为链接python3所以我使用了。 您还可以更改链接到python3.4 。 这将解决这个问题了。



Answer 8:

我是能够纠正这一问题相结合的办法。 首先,我跟着克里斯的意见,开了一个命令行和类型‘画中画显示包名’这提供了安装包的位置。

接下来,我打开Python和类型的“进口SYS”,然后“sys.path中”展现在我的对我进口任何包蟒蛇搜索。 可惜的是,在第一步中所显示的位置在列表中没有。

最后一步,我输入 'sys.path.append(' package_location_seen_in_step_1' )。 您可以选择性重复步骤二,看现在所在的位置是在列表中。

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

不足之处? 这是暂时的,你需要把它每次都添加到列表中。



Answer 9:

我遇到过这种试图使用我通过安装钥匙圈sudo pip install keyring 。 正如在其他的答案中提到,它在我的情况下,权限问题。

什么工作对我来说:

  1. 卸载钥匙扣:
    • sudo pip uninstall keyring
  2. 我用sudo的的-H选项,重新安装钥匙扣:
    • sudo -H pip install keyring

希望这可以帮助。



Answer 10:

我是新来的蟒蛇。 我通过改变项目的解释路径修复了这个问题。
File -> Settings -> Project -> Project Interpreter



Answer 11:

在我的情况下,它是与模块中的一个缺失的init .py文件的问题,我想在Python 2.7环境导入。

Python的3.3+有允许它没有一个init .py文件创建一个包隐式命名空间的软件包。



Answer 12:

我有这个确切的问题,但上面没有一个答案工作。 这让我抓狂,直到我注意到sys.path中是不同的我从父项目导入后。 原来,我已经使用导入库,以便在项目层次结构导入文件不写一个小功能。 坏主意:我忘了,我已经做到了这一点。 更糟的是,导入过程搞乱与sys.path中 - 离开这种方式。 非常糟糕的主意。

解决的办法是停止,并简单地说,我需要导入到项目中的文件。 另一种方法将是把文件放到自己的项目,因为它需要重建不时和重建可能会或可能不会与重建主体工程同时进行。



Answer 13:

我有这个问题2.7并安装在我的系统3.5试图测试用电报BOT Python的电报博特 。

我不能让它使用PIP和PIP 3安装工作后,使用sudo或没有。 我总是有:

Traceback (most recent call last):
  File "telegram.py", line 2, in <module>
    from telegram.ext import Updater
  File "$USER/telegram.py", line 2, in <module>
    from telegram.ext import Updater
ImportError: No module named 'telegram.ext'; 'telegram' is not a package

正确读取错误信息告诉我,Python是在寻找一个当前目录telegram.py 。 而正确的,我有一个脚本,躺在那里叫telegram.py,这是由蟒蛇装的时候我叫import

总之,要确保你没有任何package.py试图导入时,在你的当前工作目录。 (通读错误消息)。



Answer 14:

我有类似的问题(在Windows上),并在我的情况的根本原因是杀毒软件! 它具有“自动遏制”功能,它包装与某种虚拟机的运行过程。 症状是: pip install somemodule工作在一个CMD行窗口罚款和import somemodule与错误从另一个进程执行时失败

ModuleNotFoundError: No module named 'somemodule'

我希望这将一定时间保存到某人:)



Answer 15:

也许有点离题,但我有问题import PyYAML 。 指出,你需要import yaml 。 (猜这是一个经典的RTFM ...)



Answer 16:

当您通过安装easy_installpip ,是它成功完成? 什么是完整的输出? 它是由Python安装您使用? 您可能需要使用sudo安装命令之前,如果你正在安装模块到系统目录(如果你正在使用的系统Python安装,也许)。 有没有在你的问题去掉了很多有用的信息,但某些工具可能会帮助包括:

  • echo $PYTHONPATH和/或echo $PATH :导入模块时,Python中搜索这些环境变量(目录列表,一:分隔)你想要的模块。 导入的问题往往是由于正确的目录是从这些名单缺席

  • which pythonwhich pip ,或which easy_install :这些会告诉你每一个可执行文件的位置。 它可以帮助了解。

  • 使用的virtualenv ,像@JesseBriggs建议。 它的工作原理非常好, pip ,以帮助您隔离和管理单独的Python项目的模块和环境。



Answer 17:

如果你学会了如何使用的virtualenv(这是相当死简单),你将有较少的这些问题。 您只需源的virtualenv,然后你将使用本地(该项目)封装。

它解决了很多头痛的,我与路径,版本等。



文章来源: Unable to import a module that is definitely installed