Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 加载“入口”点看不到其他模块-“;没有名为“的模块”;错误_Python_Pip_Setup.py - Fatal编程技术网

Python 加载“入口”点看不到其他模块-“;没有名为“的模块”;错误

Python 加载“入口”点看不到其他模块-“;没有名为“的模块”;错误,python,pip,setup.py,Python,Pip,Setup.py,我无法通过pip安装创建的脚本运行python应用程序。ModuleNotFoundError发生的原因对我来说是隐藏的:/ #jsdc 回溯(最近一次呼叫最后一次): 文件“/usr/local/bin/jsdc”,第6行,在 从src.sensor_data_collector导入main 文件“/usr/local/lib/python3.7/site packages/src/sensor\u data\u collector.py”,第6行,在 从gatherer导入gatherer

我无法通过pip安装创建的脚本运行python应用程序。ModuleNotFoundError发生的原因对我来说是隐藏的:/

#jsdc
回溯(最近一次呼叫最后一次):
文件“/usr/local/bin/jsdc”,第6行,在
从src.sensor_data_collector导入main
文件“/usr/local/lib/python3.7/site packages/src/sensor\u data\u collector.py”,第6行,在
从gatherer导入gatherer
ModuleNotFoundError:没有名为“gatherer”的模块
当我直接通过入口点运行应用程序时,一切都运行顺利:

python/usr/local/lib/python3.7/site-packages/src/sensor\u data\u collector.py
Project setup.py:

导入操作系统
导入路径库
导入子流程
从setuptools导入设置中,查找\u包
从setuptools.command.install导入安装
HERE=pathlib.Path(_文件__).parent
自述文件=(此处/“README.md”).read_text()
def运行(自):
安装。运行(自我)
current_dir_path=os.path.dirname(os.path.realpath(u文件_u))
create_service_script_path=os.path.join(当前_dir_path,'install_scripts','create_service.sh')
子流程。检查\u输出([创建\u服务\u脚本\u路径])
设置(
name=“jacfal传感器数据采集器”,
version=“0.0.1”,
description=“从物联网传感器收集数据并将其发送到定义的目标”,
长描述=自述,
长\u描述\u内容\u type=“text/markdown”,
url=”https://github.com/Jacfal/SensorDataCollector",
作者=“Jacfal”,
作者\u email=“jacfal。tech@protonmail.com",
license=“MIT”,
分类器=[
“许可证::OSI已批准::MIT许可证”,
“编程语言::Python::3.7”,
],
packages=find_packages(),
入境点={
“控制台脚本”:[“jsdc=src.sensor\u data\u收集器:main”,]
},
)
项目文件结构:

.
├── install_scripts
│   └── create_service.sh
├── install.sh
├── LICENSE
├── README.md
├── requirements.txt
├── setup.py
├── src
│   ├── configuration.py
│   ├── config.yml
│   ├── event.py
│   ├── gatherer.py
│   ├── helpers
│   │   ├── __init__.py
│   │   └── sensor_helpers.py
│   ├── __init__.py
│   ├── sensor_data_collector.py
│   ├── sensor.py
│   ├── sensors
│   │   ├── dummy_sensor.py
│   │   └── __init__.py
│   ├── targets
│   │   ├── influxdb_target.py
│   │   ├── __init__.py
│   │   └── log_target.py
│   └── target_system.py
└── tests

我是第一次使用setup.py,因此我很乐意得到任何帮助或建议。谢谢。

照片上少了一些东西。您似乎没有顶级软件包,而您的发行版的构建似乎将
src
作为顶级软件包名称-尝试
import src.gatherer
,它将“起作用”


当然,正确的解决方法是有一个合适的顶级包,这意味着您需要在
src
sensor\u data\u collector
也许?)中创建一个目录,并将所有文件移动到该目录中;并使用
查找包('src')
。然后,您需要在所有导入前加上此前缀。

您是对的。当我将'src'粘贴为模块前面的顶级包时,它可以正常工作。因此,我将进行一些重构。谢谢你的帮助。