在使用Python3/setuptools为我的pkg构建了一个EGG文件之后,我在尝试运行脚本时遇到了一些问题。如果在setup.py中使用zip\u safe=False,我可以正常运行脚本。但我得到了一个modulenofounderror。我做错了什么?我不想使用zip\u safe=False选项
我的项目结构如下:
.
|-- python_pkgs
| |-- __init__.py
| |-- acap
| | |-- __init__.py
| | |-- acap.py
| | |-- cfg
| | |-- pch_acap.pl
| | |-- spf.py
| | `-- tvpv.py
| |-- parsers
| | |-- STIL1999ModelBuilderSemantics.py
| | |-- STIL1999Parser.py
| | |-- __init__.py
| | |-- grammars
| | `-- test
| `-- utils
| |-- __init__.py
| |-- misc.py
| |-- nbq.py
| |-- splitter.py
| `-- util.py
|-- run_acap.py
`-- setup.py
run_acap.py的内容:
#!/nfs/sc/disks/mpe_tvpv_032/sw_tools/anaconda3/bin/python3.7 -B
import sys
print(sys.path)
from python_pkgs.acap.acap import main
if __name__ == "__main__":
main()
setup.py文件的内容:
from setuptools import setup, find_namespace_packages
setup(
name='python_pkgs',
version='0.1',
packages=find_namespace_packages(include=['python_pkgs.*'],
exclude=['python_pkgs.parsers',
'python_pkgs.parsers.*']),
scripts=['run_acap.py']
)
要安装,我说:python setup.py install--prefixa path
安装目录内容如下所示:
$ tree
.
|-- bin
| `-- run_acap.py
`-- lib
`-- python3.7
`-- site-packages
|-- easy-install.pth
|-- python_pkgs-0.1-py3.7.egg
`-- site.py
我注意到bin/run_acap.py的内容有些不同:
#!/nfs/sc/disks/mpe_tvpv_032/sw_tools/anaconda3/bin/python -B
# EASY-INSTALL-SCRIPT: 'python-pkgs==0.1','run_acap.py'
__requires__ = 'python-pkgs==0.1'
__import__('pkg_resources').run_script('python-pkgs==0.1', 'run_acap.py')
现在运行这个脚本,我说:
setenv PYTHONPATH <a path>/lib/python3.7/site-packages
<a path>/bin/run_acap.py --help
$ /nfs/sc/disks/mpe_tvpv_032/pgupta6/releases/acap/ww49.2/bin/run_acap.py --help
['/nfs/sc/disks/mpe_tvpv_032/pgupta6/releases/acap/ww49.2/bin', '/nfs/sc/disks/mpe_tvpv_032/pgupta6/releases/acap/ww49.2/lib/python3.7/site-packages', '/nfs/sc/disks/mpe_tvpv_032/pgupta6/releases/acap/ww49.2/lib/python3.7/site-packages/python_pkgs-0.1-py3.7.egg', '/nfs/sc/disks/mpe_tvpv_032/sw_tools/anaconda3/lib/python37.zip', '/nfs/sc/disks/mpe_tvpv_032/sw_tools/anaconda3/lib/python3.7', '/nfs/sc/disks/mpe_tvpv_032/sw_tools/anaconda3/lib/python3.7/lib-dynload', '/nfs/sc/disks/mpe_tvpv_032/sw_tools/anaconda3/lib/python3.7/site-packages']
Traceback (most recent call last):
File "/nfs/sc/disks/mpe_tvpv_032/pgupta6/releases/acap/ww49.2/bin/run_acap.py", line 4, in <module>
__import__('pkg_resources').run_script('python-pkgs==0.1', 'run_acap.py')
File "/nfs/sc/disks/mpe_tvpv_032/sw_tools/anaconda3/lib/python3.7/site-packages/pkg_resources/__init__.py", line 666, in run_script
self.require(requires)[0].run_script(script_name, ns)
File "/nfs/sc/disks/mpe_tvpv_032/sw_tools/anaconda3/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1469, in run_script
exec(script_code, namespace, namespace)
File "/nfs/sc/disks/mpe_tvpv_032/pgupta6/releases/acap/ww49.2/lib/python3.7/site-packages/python_pkgs-0.1-py3.7.egg/EGG-INFO/scripts/run_acap.py", line 11, in <module>
ModuleNotFoundError: No module named 'python_pkgs'
但是如果我打开一个python解释器,只需键入import python\u pkgs导入就可以了。我不确定我在setup.py文件(或其他地方)中做错了什么。如何修复此错误?谢谢
目前没有回答
相关问题 更多 >
编程相关推荐