3

我的 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 和开发源代码中的目录结构有关。我怎样才能让它在“开发”模式下安装?

4

0 回答 0