在shell中更改PYTHONPATH

时间:2013-03-09 20:11:56

标签: python pythonpath

我是Python和shell脚本的全新用户,并且即使在Google搜索问题并且对着桌面撞击很多之后,也已经陷入了死胡同。任何帮助表示赞赏!

我在SSH上运行Python 2.7.3;我下载了一些代码来运行一些程序/分析。当我执行初始程序时,出现以下错误:

    Traceback (most recent call last):
    File "./[script1].py", line 7, in <module>
    import [script1]
    File "[directory]/[script].py", line 22, in <module>
    import gdata.spreadsheet.service
    ImportError: No module named gdata.spreadsheet.service

[脚本1]指的是作为代码包一部分的同一文件夹中的python脚本,它还调用Google Data python包,我已将其下载到同一文件夹并进行了gunzipped, tar解压缩,然后安装(使用./configure等)基于查找错误,我最好的猜测是PYTHONPATH出现了问题,而且找不到[script1] .py和Gdata文件夹,即使它们都与我正在运行的脚本位于同一目录中。 &#34; Echo $ PYTHONPATH&#34;告诉我它是一个未定义的变量,并且目录中还有一个空白的 init .py文件。没有包含单词&#34; bash&#34;的文件或&#34; bashrc&#34;该目录中的任何地方。同样,我似乎无法找到任何&#34; sys.path&#34;文件,虽然当我启动Python并打印(sys.path)时,我得到了结果输出:

['', 
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PIL',
'/usr/lib/python2.7/dist-packages/gst-0.10',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
'/usr/lib/python2.7/dist-packages/ubuntuone-client',
'/usr/lib/python2.7/dist-packages/ubuntuone-installer',
'/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol',
'/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']

我也试过

export PYTHONPATH=[directory]

在我的shell中,但它吐出&#34;导出:命令未找到&#34;。

请原谅所有这一切的新人 - 对此有任何帮助(无论我的怀疑是否正确,以及如何解决这些问题)将不胜感激!

1 个答案:

答案 0 :(得分:7)

设置PYTHONPATH

通过您尝试的export命令的输出,看起来您正在使用的shell不是bash。 This post介绍了如何找出您所在的shell的方法。找到shell后,您可以了解如何在该shell中设置环境变量(PYTHONPATH)。

您也可以尝试在运行脚本期间设置PYTHONPATH(最后一个应该在(T)CSH上运行):

PYTHONPATH=your_directory python script_name

env PYTHONPATH=your_directory python script_name

测试您设置的PYTHONPATH

要查看PYTHONPATH确实已在Python中设置并运行,而不是使用python script_name运行上述脚本,请使用python -c 'import os; print os.getenv("PYTHONPATH")'。它应该显示您刚设置的PYTHONPATH。

同样,在Python解释器中打印sys.path应该输出PYTHONPATH中的路径作为其中一个条目。

如果PYTHONPATH设置正确

如果您成功设置了PYTHONPATH并且问题仍然存在,请尝试从 gdata 所在的路径运行Python解释器。

cd path_which_has_subdirectory_gdata
python

在Python解释器中,尝试导入gdata模块:

import gdata

如果可行,请尝试导入导致ImportError的模块:

import gdata.spreadsheet.service

如果这些导入使用Python解释器,那么[script1]可能有问题。如果没有,请尝试确认gdata模块确实在您认为的位置;模块的正确目录应包含名为__init__.py的文件,并且应将PYTHONPATH设置为指向层次结构中模块上面目录。