我想从Windows切换到Linux(Ubuntu)编写我的python程序,但我无法让事情发挥作用.问题在于:我可以看到在Ubuntu中预装了很多模块(如numpy,pandas,matplotlib等).它们很好地位于/ host / Python27 / Lib / site-packages目录中.但是当我编写一个测试python脚本并尝试执行它时,每当我尝试导入一个模块时它就会给我一个ImportError(例如import numpy,因为np给了我ImportError:没有名为numpy的模块).当我在命令行中键入哪个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,因为你更有可能获得更新版本的模块(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,ubuntu,linux