我是Python和shell脚本的全新用户,即使经过谷歌搜索问题并且对着桌面敲打很多东西,我也已经陷入了死胡同.任何帮助表示赞赏!
我正在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
Run Code Online (Sandbox Code Playgroud)
[脚本1]指的是同一文件夹中的一个python脚本,作为代码包的一部分,它还调用了Google Data python包,我已将其下载到同一个文件夹并进行了gunzipped,tar解压缩,然后安装(使用./configure等)基于查找错误,我最好的猜测是这里的PYTHONPATH有问题,而且它找不到[script1] .py和Gdata文件夹,即使两者都在与我正在运行的脚本相同的目录."Echo $ PYTHONPATH"告诉我它是一个未定义的变量,并且目录中还有一个空的init .py文件.在该目录中的任何地方都没有包含"bash"或"bashrc"字样的文件.同样,我似乎无法找到任何"sys.path"文件,虽然当我启动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']
Run Code Online (Sandbox Code Playgroud)
我也试过了
export PYTHONPATH=[directory]
Run Code Online (Sandbox Code Playgroud)
在我的shell中,但它吐出"export:command not found".
请原谅所有这一切的新人 - 对此的任何帮助(无论我的怀疑是否正确,以及如何解决它们)将不胜感激!
通过export您尝试的命令的输出,看起来您正在使用的shell不是bash.这篇文章介绍了如何找出你所在的shell的一些方法.找到shell后,您可以了解如何在该shell中设置环境变量(PYTHONPATH).
您也可以尝试在运行脚本期间设置PYTHONPATH(最后一个应该在(T)CSH上运行):
PYTHONPATH=your_directory python script_name
Run Code Online (Sandbox Code Playgroud)
和
env PYTHONPATH=your_directory python script_name
Run Code Online (Sandbox Code Playgroud)
要看到PYTHONPATH确实在Python中设置并运行,而不是像上面那样运行脚本python script_name,请使用python -c 'import os; print os.getenv("PYTHONPATH")'.它应该显示您刚刚设置的PYTHONPATH.
同样,sys.path在Python解释器中打印应该输出PYTHONPATH中的路径作为其中一个条目.
如果您成功设置了PYTHONPATH并且问题仍然存在,请尝试从您拥有gdata的路径运行Python解释器.
cd path_which_has_subdirectory_gdata
python
Run Code Online (Sandbox Code Playgroud)
在Python解释器中,尝试导入gdata模块:
import gdata
Run Code Online (Sandbox Code Playgroud)
如果可行,请尝试导入导致以下内容的模块ImportError:
import gdata.spreadsheet.service
Run Code Online (Sandbox Code Playgroud)
如果这些导入使用Python解释器,那么[script1]可能有问题.如果没有,请尝试确认gdata模块确实在您认为的位置; 模块的正确目录应包含一个名为的文件,__init__.py并且应将PYTHONPATH设置为指向层次结构中模块上方的目录.
| 归档时间: |
|
| 查看次数: |
47054 次 |
| 最近记录: |