5

我想从 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 路径相关的内容,但我不知道该怎么做。

4

3 回答 3

11

您可以在终端中使用以下命令来查看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 进行开发有一些建议:

  1. 使用virtualenv. 它是一个非常强大的工具,可以创建沙盒 python 环境,因此您可以安装模块并将它们与主解释器分开。

  2. 使用pip- 创建virtualenv并激活它后,您可以使用它pip install为您安装软件包。例如pip install numpy,将 numpy 安装到您的虚拟环境中,并且只能从这个 virtualenv 访问。这意味着您还可以安装不同的版本进行测试等。非常强大。我建议pip您使用 ubuntu 安装您的 python 包,apt-get install因为您更有可能获得更新版本的模块(apt-get依赖于打包最新版本的 python 库的人,并且可能无法用于与 ubuntu 一样多的库pip)。

  3. 在编写可执行的Python 脚本时chmod +x my_python_script.py#!/usr/bin/env python如果您不这样做(并且 put #!/usr/bin/python),那么运行./my_python_script.py将始终使用系统 python 解释器。

于 2013-06-13T09:33:22.693 回答
2

/host/Python27/Lib/site-packages据我所知,它不是 linux 安装上的默认 python 目录。

正常的 python 安装(和 python 包)应该在你的处理器架构下/usr/lib/usr/lib64取决于你的处理器架构。

如果您想检查除了这些目录之外 python 在哪里搜索,您可以使用带有以下命令的终端:

echo $PYTHONPATH

如果/host/Python27/Lib/site-packages未列出路径,请尝试使用以下命令并重试:

export PYTHONPATH=$PYTHONPATH:host/Python27/Lib/site-packages

如果这应该有效,并且您不想每次使用这些软件包时都在终端中编写它,只需将其放入文件夹中称为.bashrc的文件中home(通常/home/<username>)。

于 2013-06-13T09:32:11.500 回答
0

安装其他python库时,指定要安装到的pip版本,如果是python2,则输入以下语法:

pip2 install <package>

对于python3

pip3 install <package>
于 2019-11-28T09:06:40.447 回答