admin 管理员组文章数量: 1184232
I'm unable to import entry point console scripts in my python package. Looking for help debugging my current issue, as I have read every relevant post on the issue.
Here is what my directory structure looks like:
├── ContentAnalysis
│ ├── __init__.py
│ ├── command_line.py
│ ├── document.py
│ ├── entities.py
│ ├── sentiment.py
│ ├── summary.py
│ ├── text_tokenize.py
│ ├── tokens.py
├── local-requirements.txt
├── requirements.txt
├── server-requirements.txt
├── setup.py
└── tests
├── tests.py
└── tests.pyc
Here is what my setup.py looks like
from setuptools import setup
config = {
'description': 'Tools to extract information from web links',
'author': 'sample',
'version': '0.1',
'install_requires': ['nose'],
'packages': ['ContentAnalysis'],
'entry_points': {
'console_scripts': ['content_analysis=ContentAnalysis.command_line:main'],
},
'name':'ContentAnalysis',
'include_package_data':True
}
setup(**config)
I've installed the package and verified that content_analysis is reachable from the command line. I've also verified that my ContentAnalysis package is importable from the python interpreter from any cd in the computer. Yet I still get an "Entry point not found error on execution"
grant@DevBox2:/opt/content-analysis$ content_analysis -l '
Traceback (most recent call last):
File "/opt/anaconda2/bin/content_analysis", line 11, in
load_entry_point('ContentAnalysis==0.1', 'console_scripts', 'content_analysis')()
File "/opt/anaconda2/lib/python2.7/site-packages/setuptools-26.1.1-py2.7.egg/pkg_resources/__init__.py", line 565, in load_entry_point
File "/opt/anaconda2/lib/python2.7/site-packages/setuptools-26.1.1-py2.7.egg/pkg_resources/__init__.py", line 2588, in load_entry_point
ImportError: Entry point ('console_scripts', 'content_analysis') not found
Any help or tips towards debugging this is appreciated
Edit #1:
Attempting to debug the issue, I noticed the command_line is not reachable as a submodule within ContentAnalysis
>>> import ContentAnalysis
>>> ContentAnalysis.tokens
>>> ContentAnalysis.command_line
Traceback (most recent call last):
File "", line 1, in
AttributeError: 'module' object has no attribute 'command_line'
>>>
It appears that command_line is not being added to the relevant site_packages folder.
grant@DevBox2:/opt/anaconda2/lib/python2.7/site-packages/ContentAnalysis$ ls
data entities.py __init__.pyc summary.py text_tokenize.pyc
document.py entities.pyc sentiment.py summary.pyc tokens.py
document.pyc __init__.py sentiment.pyc text_tokenize.py tokens.pyc
I wonder why?
解决方案
Investigation of the relevant site-packages folder clued me that my python setup.py install command was not putting all the relevant files where they needed to be.
I'm still not 100% of the underlying cause of the issue, but I was only able to get my site-packages folder to truly update by passing setup.py the --force argument as in
python setup.py install --force
Now my site-packages folder contains the relevant command_line.py, and the console entry point works as expected.
版权声明:本文标题:python无法找到入口_Python入口点'console_scripts'未找到 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1773837064a3566282.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论