2017-10-08 116 views
1

每当我需要与运行我的Python程序:删除sudo来运行python脚本

python my_program.py 

我得到一些错误,指出部分进口没有被发现。

有些错误是这样的:

Traceback (most recent call last): 
    File "graphic.py", line 1, in <module> 
    import matplotlib.pyplot as plt 
ImportError: No module named 'matplotlib' 

比我跑:

sudo python my_program.py 

而且每一件事情的工作就好了。我如何删除sudo命令来运行我的python代码?

+0

似乎你在sudo下安装Python,所以没有sudo的后来的命令无法访问具有root权限的文件夹。尝试重新安装python,切记不要始终使用sudo来安装东西,否则可能会破坏权限管理。 –

+0

[无法导入肯定已安装(机械化)的python模块]可能的重复(https://stackoverflow.com/questions/14295680/cannot-import-a-python-module-that-is-definitely-installed-mechanize ) – thatrockbottomprogrammer

回答

2

ImportError: No module named 'matplotlib'当你的Python找不到该模块时发生。 sudo更改环境变量;这就是为什么。

若要解决此问题,请在您的计算机上找到matplotlib的安装位置,并确认该文件夹是您的sys.path的一部分。

import sys 
sys.path 
['C:\\Python27\\tests', ..., ...] 

那么你两个选择:从插入你的脚本,即增加用户下成一线,import sys; sys.path.append(<folder>)或配置PYTHONPATH环境变量的文件夹附加到路径路径。

PYTHONPATH env变量在启动时被加载到sys.path

+0

我不明白第二个选项,我怎么配置PYTHONPATH? –

0

对我来说最好的解决方案是所有项目的一般工作流程:使用virtualenviroment] 1

sudo pip3 install virtualenv 
virtualenv myenv 
source mynenv/bin/activate 

那么你应该PIP重新安装你的图书馆,它们将被安装在您的virtualenviroment,从一切隔离。