我的 console_scripts/entry_points 不能在“开发”模式下安装并产生一个回溯,说 ImportError 无法加载包含入口点的模块。需要帮助了解 entry_points 如何确定要加载的模块以及设置和内容的路径。帮助修复我的错误。
我有一个 setup.py 脚本,其中有一些入口点,如下所示
entry_points = {'console_scripts':[
'pyjampiler=pyjs.pyjampiler:Builder',
'pyjscompile=pyjs.translator:main',
'pyjsbuild=pyjs.browser:build_script',
]}
我的代码组织为
workspace/
setup.py
pyjs/
src/
pyjs/
browser.py
我的 setup.py 使用 setup.py 中 setup() 的包和 package_dir 参数来确保从 pyjs/src/pyjs 获取 pyjs 包,因此常规安装会生成以下包含以下内容的控制台脚本并运行美好的。它能够加载模块并很好地调用入口点。
sys.exit( load_entry_point('pyjs==0.8.1', 'console_scripts', 'pyjsbuild')() )
但是当我以“python setup.py develop”的形式在开发中安装并运行它时,安装正常,我看到 egg.lnk 文件正在创建。但执行控制台脚本会导致以下错误
localhost:pyjs sarvi$ lpython/bin/pyjsbuild
Traceback (most recent call last):
File "lpython/bin/pyjsbuild", line 8, in <module>
load_entry_point('pyjs==0.8.1', 'console_scripts', 'pyjsbuild')()
File "/Users/sarvi/Workspace/pyjs/lpython/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 318, in load_entry_point
File "/Users/sarvi/Workspace/pyjs/lpython/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 2221, in load_entry_point
File "/Users/sarvi/Workspace/pyjs/lpython/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 1954, in load
ImportError: No module named browser
我怀疑它与 sys.path 和开发源代码中的目录结构有关。我怎样才能让它在“开发”模式下安装?