我的目录结构:
Projects/
|- VirtualEnv/
|- Graph/
|- graph/
| |- __init__.py
| |- create_structure.py
|- setup.py
|- MANIFEST.in
你知道吗设置.py地址:
from setuptools import setup, find_packages
import graph
if __name__ == "__main__":
setup(
name='MyGraph',
version='1.0',
packages = find_packages("graph"),
entry_points={
'console_scripts':
['start_graph = graph.create_structure:go']
},
install_requires = [
"pandas>=0.25.1",
"teradatasql>=16.20.0.50"
],
include_package_data=True
)
我创建了virtualenv
virtualenv VirtualEnv/env
然后我安装软件包
VirtualEnv/env/Scripts/python Graph/setup.py install
之后我激活了virtualenv
source VirtualEnv/env/Scripts/activate
并运行“启动图”(命令从设置.py)得到了
Traceback (most recent call last):
File "D:\Developers\kdnikish\Projects\VirtualEnv\env\Scripts\start_graph-script.py", line 11, in <module>
load_entry_point('MyGraph==1.0', 'console_scripts', 'start_graph')()
File "D:\Developers\kdnikish\Projects\VirtualEnv\env\lib\site-packages\pkg_resources\__init__.py", line 489, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "D:\Developers\kdnikish\Projects\VirtualEnv\env\lib\site-packages\pkg_resources\__init__.py", line 2852, in load_entry_point
return ep.load()
File "D:\Developers\kdnikish\Projects\VirtualEnv\env\lib\site-packages\pkg_resources\__init__.py", line 2443, in load
return self.resolve()
File "D:\Developers\kdnikish\Projects\VirtualEnv\env\lib\site-packages\pkg_resources\__init__.py", line 2449, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
ModuleNotFoundError: No module named 'graph'
为什么不起作用?我的错在哪里?你知道吗
看起来罪魁祸首可能是
packages
参数。它可能应该是packages=find_packages()
或者更明确地:packages=find_packages(src='.')
。参见setuptools documentation on "Using find_packages()"。你知道吗另外,在执行安装脚本时,最好与安装脚本位于同一目录中:
您也可以从
setup.py
中删除import graph
指令,我认为没有任何必要,而且它通常迟早会中断。你知道吗然后为了调试,找到
MyGraph.egg-info
目录并查看top_level.txt
和SOURCES.txt
文件。这些可以帮助你判断包装是否正确。你知道吗相关问题 更多 >
编程相关推荐