我安装了pip(pip 1.5.4 from /usr/lib/python2.7/dist-packages
(python 2.7))。我的python版本是2.7。
我安装了pygame
,apt-get install python-pygame
并收到了一条成功消息。但是,当我尝试将其导入时python
,收到以下消息:
ashish@Ashish-Notebook:~$ python
Python 2.7.11 (default, Jun 6 2016, 07:21:54)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named pygame
>>>
同样,我安装了Beautiful Soup by pip install BeautifulSoup
,并且无法将其导入任何地方。而且,当我再次尝试安装时,会收到以下消息:
Requirement already satisfied (use --upgrade to upgrade): BeautifulSoup in /usr/local/lib/python2.7/dist-packages
Cleaning up...
ashish@Ashish-Notebook:~$
此外,当我得到已安装软件包的列表(按pip列表)时。我可以在该列表中看到pygame和beautifulsoup。
问题在于,当您使用sudo apt-get install
(或sudo pip install
)安装东西时,它们会安装到中的位置/usr
,但是您从源代码编译的python已安装在中/usr/local
。当您python
在提示符下键入时,实际上最终运行的python是已编译python -c 'import sys; print(sys.path)'
的python (基于命令的输出),并且找不到安装在python中的python软件包。/usr
目录。但是,Ubuntu附带了已经安装在正确位置的python(python 2和python 3),可以在其中找到已安装的软件包。因此,通常的建议是尽量不要混合使用这种安装方法。Ubuntu的官方存储库中提供了许多软件包,从而消除了自己进行大量编译的麻烦,并且通常建议尽可能通过apt安装软件。
也就是说,对于python软件包(例如Pygame和Beautiful Soup),事情可能会变得更加复杂。混合pip
并apt-get
可能导致麻烦的道路,所以一个办法让事情变得简单是坚持只用系统包管理器。如果由于软件包管理器没有所需的东西(或最新版本)而最终需要使用pip,则最好在虚拟环境中工作并将pip用于该虚拟环境中所需的所有python软件包。
为了告诉您的系统正确找到默认的系统python(python 2,这是您刚调用时的默认值python
),请尝试重写符号链接,该符号链接会将python
命令在提示符处路由到原始目的地:
sudo ln -s /usr/bin/python2.7 /usr/bin/python
希望这应该允许它找到您安装的python软件包。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句