我想从Windows切换到Linux(Ubuntu)编写我的Python程序,但我无法让事情工作。问题来了:我可以看到在Ubuntu中预装了很多模块(比如numpy,pandas,matplotlib等)。他们很好地坐在/ host/Python27/Lib/site-packages目录中。但是当我编写测试python脚本并尝试执行它时,只要我尝试导入模块(例如import numpy as np
就给我ImportError: No module named numpy
),它就会给我一个ImportError。当我在命令行中键入which python
时,我得到/usr/bin/python
路径。我想我可能需要改变与python路径相关的东西,但我不知道该怎么做。模块安装时导入Python ImportError [Ubuntu]
回答
您可以在终端中使用以下命令查看PYTHONPATH
中的文件夹。
python -c "import sys, pprint; pprint.pprint(sys.path)"
我猜/host/Python27/Lib/site-packages
不会是在那里(它听起来并不像一个普通的Python路径。您是如何安装这些软件包?)。
如果你要的文件夹添加到您的PYTHONPATH
然后使用以下命令:
export PYTHONPATH=$PYTHONPATH:/host/Python27/Lib/site-packages
个人在这里是使用Python开发的一些建议:
使用
virtualenv
。这是一个非常强大的工具,可以创建沙盒python环境,因此您可以安装模块并将它们与主解释器分开。使用
pip
- 当您创建virtualenv
并激活它时,可以使用pip install
为您安装软件包。例如pip install numpy
会将numpy安装到您的虚拟环境中,并且只能从此virtualenv访问。这意味着你也可以安装不同的版本进行测试等。非常强大。我建议使用pip
来安装你的python软件包而不是使用ubuntuapt-get install
,因为你更可能获得更新版本的模块(apt-get
依赖于某人打包最新版本的python库,并且可能无法使用pip
)。在编写可执行文件(
chmod +x my_python_script.py
)的Python脚本时,请确保将#!/usr/bin/env python
放在最顶端,因为它会在您的虚拟环境中选取python解释器。如果你不(并且放#!/usr/bin/python
)那么运行./my_python_script.py
将总是使用系统python解释器。
/host/Python27/Lib/site-packages
不是linux安装上的默认python目录,据我所知。
根据您的处理器架构,应该在/usr/lib
或/usr/lib64
之下找到正常的python安装(和python软件包)。
如果你想查一下Python是除了这些目录中搜索您可以使用一个终端使用以下命令:
echo $PYTHONPATH
如果未列出/host/Python27/Lib/site-packages
路径,尝试使用以下命令再次尝试:
export PYTHONPATH=$PYTHONPATH:host/Python27/Lib/site-packages
如果这应该工作,你不希望你要使用这些软件包,简单地把它放入一个叫.bashrc
文件在您home
FOL每次写在终端der(通常为/home/<username>
)。
- 1. python导入模块ImportError
- 2. Python安装包不会导入模块
- 3. 在谷歌云壳中安装python模块,但python导入给出ImportError
- 4. 成功安装后CircleCI python模块导入错误
- 5. Python安装模块和导入
- 6. 在Spyder 2.1上安装/导入sklearn模块? (Ubuntu)
- 7. python导入模块
- 8. 无法导入模块 - ImportError:无模块
- 9. Linux-Ubuntu:如何安装python模块autopy?
- 10. Pylucene 4.9.0 Ubuntu 14.04安装ImportError
- 11. paramiko安装“无法导入ImportError”
- 12. 如何在运行时安装和导入Python模块?
- 13. Python模块在Mac OS上导入时被问题安装
- 14. ImportError:没有名为pynotify的模块。当模块安装时
- 15. 只能够在安装目录中导入python模块
- 16. 无法导入模块后,安装
- 17. 导入已安装模块的Python错误
- 18. 尝试在SublimeText2中导入python模块时出现ImportError
- 19. Python模块导入
- 20. Ubuntu - Python安装
- 21. 无法导入模块已安装Python Pycharm
- 22. Python-2.7模块肯定安装时没有被导入
- 23. Python模块没有安装
- 24. 安装python模块时出错
- 25. ImportError:安装cherrypy时没有名为http.cookies的模块3.2
- 26. 不能导入模块在Python 3的ALT安装后
- 27. Python模块已经安装,但获取导入错误
- 28. 不能导入PIP模块安装在Ubuntu
- 29. 在ubuntu上安装jpeg模块
- 30. 安装Python模块错误
我猜这些软件包是由Ubuntu安装的,因为我没有在完全安装Ubuntu之后自行安装任何python软件包。我已经尝试将'/ host/...'路径添加到PYTHONPATH,但是仍然无法找到各种依赖关系。我会尝试使用'virtualenv'来代替它,看看它是否有效。谢谢你的回复 – MPA