我想从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软件包,而不是使用ubuntu apt-get install来安装python软件包,因为您更有可能获得较新版本的模块(apt-get依赖于包装最新版python库的人,因此可能无法提供与pip一样多的库)。
  • 在编写将使可执行文件(chmod +x my_python_script.py)的python脚本时,请确保将#!/usr/bin/env python放在顶部,因为这将在您的虚拟环境中使用python解释器。如果您不这样做(并输入#!/usr/bin/python),那么运行./my_python_script.py将始终使用系统python解释器。
  • 关于安装模块时出现Python ImportError [Ubuntu],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17083595/

    10-11 22:21
    查看更多