Python模块是安装还是未安装?
我该如何检查我的Python模块是否成功安装。
我做了:
python setup.py install
在我下载模块的文件夹里。
现在,我可以看到在这个位置生成了一个文件夹:
/usr/lib/python2.4/site-packages (I can see my module folder is inside here)
现在我正在用PHP执行这个模块中的一个脚本:
exec("/usr/bin/python /usr/lib/python2.4/site-packages/MyModule/myModule script.py -v pixfx.xml 2>&1", $output, $return);
这个脚本运行了script.py文件,但没有加载这个脚本需要的模块。 这个脚本里有这样的代码:
#! /usr/bin/env python
import sys
import os
import getopt
import re
from myModule.ttLib import TTFont // this is line60 as I have removed comments
我收到了这个错误:
Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/MyModule/myModule/script.py", line 60, in ? from myModule.ttLib import TTFont ImportError: No module named myModule.ttLib
这是否意味着我的模块安装方式可能有问题? 或者 我该如何检查模块是否正确安装....
我还尝试在SSH终端中这样做:
help('modules')
这列出了很多模块,但我的模块名缺失了。
有人能帮帮我吗?
****** 编辑 {已解决} ****** 重新安装模块解决了这个问题。 有趣的是,我使用的Mediatemple提供的在线SSH工具,没有正确安装模块。 后来我在我的Mac电脑上用终端安装,结果一切正常。
只是想把这个分享给可能遇到类似问题的其他人。
谢谢
5 个回答
我对Python不是很精通,但有一种调试的方法是打开Python的命令行,然后输入 import myModule
,接着试着运行一些简单的命令,看看能不能用到这个模块的功能。如果这样能正常工作,那说明你的模块安装没问题。如果不行,那就是这个模块没有安装好。
你应该看到的不仅仅是目录创建 /usr/lib/python2.4/site-packages
。
你可以通过以下方式检查你调用的Python解释器是否能找到你的模块:
/usr/bin/python -c "import MyModule"
这个命令应该能顺利导入 MyModule/__init__.py
,而不会抱怨找不到MyModule。
因为你的代码中有很多模块,实际上你想要创建的是一个包,而不是单个模块。
要做到这一点,你只需要在MyModule/及其所有子包中添加一个空的 __init__.py
文件,这样就表示你有一个包(也就是一个包含多个模块的文件夹)。
如果你的ttLib在MyModule/myModule/ttLib/中,你可以同样操作,在MyModule和MyModule/myModule/中添加一个空的 __init__.py
文件,这样就声明MyModule和MyModule/myModule都是包;然后你就可以简单地执行:
from MyModule.myModule.ttLib import …
希望这能帮到你!有关包的完整文档可以在官方网站找到。