我想从 Windows 切换到 Linux (Ubuntu) 来编写我的 python 程序,但我就是无法正常工作。问题在于:我可以看到在 Ubuntu 中预装了相当多的模块(如 numpy、pandas、matplotlib 等)。它们很好地位于/host/Python27/Lib/site-packages 目录中。但是当我编写一个测试 python 脚本并尝试执行它时,每当我尝试导入一个模块时它都会给我一个 ImportError (例如 import numpy as np
给我 ImportError: No module named numpy
).当我在命令行中键入 which python
时,我得到了 /usr/bin/python
路径。我想我可能需要更改与 python 路径相关的内容,但我不知道该怎么做。
最佳答案
您可以在终端中使用以下命令查看您的 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
那样适用于那么多的库。在编写您将使其可执行的 python 脚本时 (
chmod +x my_python_script.py
) 确保您输入#!/usr/bin/env python
在顶部,因为这将在您的虚拟环境中选择 python 解释器。如果您不这样做(并输入#!/usr/bin/python
),那么运行./my_python_script.py
将始终使用系统 python 解释器。
关于安装模块时出现 Python ImportError [Ubuntu],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17083595/