Gra*_*D71 11 python debian setuptools setup.py anaconda
我无法在我的 python 包中导入入口点控制台脚本。寻求帮助调试我当前的问题,因为我已阅读有关该问题的所有相关帖子。
这是我的目录结构的样子:
??? 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
Run Code Online (Sandbox Code Playgroud)
这是我的 setup.py 的样子
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)
Run Code Online (Sandbox Code Playgroud)
我已经安装了该软件包并验证了可以从命令行访问 content_analysis。我还验证了我的 ContentAnalysis 包可以从计算机中任何 cd 的 python 解释器导入。但是我仍然收到“执行时未找到入口点错误”
grant@DevBox2:/opt/content-analysis$ content_analysis -l 'http://101beauty.org/how-to-use-baking-soda-to-reduce-dark-circles-and-bags-under-the-eyes/'
Traceback (most recent call last):
File "/opt/anaconda2/bin/content_analysis", line 11, in <module>
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
Run Code Online (Sandbox Code Playgroud)
任何有关调试的帮助或提示表示赞赏
编辑#1:
尝试调试问题时,我注意到 command_line 作为 ContentAnalysis 中的子模块无法访问
>>> import ContentAnalysis
>>> ContentAnalysis.tokens
<module 'ContentAnalysis.tokens' from '/opt/anaconda2/lib/python2.7/site-packages/ContentAnalysis/tokens.pyc'>
>>> ContentAnalysis.command_line
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'command_line'
>>>
Run Code Online (Sandbox Code Playgroud)
似乎没有将 command_line 添加到相关的 site_packages 文件夹中。
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
Run Code Online (Sandbox Code Playgroud)
我想知道为什么?
对相关站点包文件夹的调查告诉我,我的python setup.py install命令没有将所有相关文件放在需要的位置。
我仍然不是 100% 的问题根本原因,但我只能通过传递 setup.py 参数来真正更新我的 site-packages 文件夹,--force如下所示
python setup.py install --force
Run Code Online (Sandbox Code Playgroud)
现在我的 site-packages 文件夹包含相关的 command_line.py,并且控制台入口点按预期工作。
| 归档时间: |
|
| 查看次数: |
9606 次 |
| 最近记录: |