我是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;。
请原谅所有这一切的新人 - 对此有任何帮助(无论我的怀疑是否正确,以及如何解决这些问题)将不胜感激!
答案 0 :(得分:7)
通过您尝试的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确实已在Python中设置并运行,而不是使用python script_name
运行上述脚本,请使用python -c 'import os; print os.getenv("PYTHONPATH")'
。它应该显示您刚设置的PYTHONPATH。
同样,在Python解释器中打印sys.path
应该输出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设置为指向层次结构中模块上面目录。