在安装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 /网站/
保存文件,重新启动终端,就完成了
我一直在用脑袋撞显示器,直到一个年轻的实习生告诉我,秘诀是在模块目录中“python setup.py install”。
出于某种原因,从那里运行设置可以让它正常工作。
需要明确的是,如果你的模块名是"foo":
[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
在我的例子中,我运行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-命令被链接到python2.7
/usr/bin> ls -l python
lrwxrwxrwx 1 root root 9 Mar 14 15:48 python -> python2.7
就在它旁边,我发现了一个名为python3的链接,所以我使用了它。还可以将链接更改为python3.4。这也能解决问题。