python package和目录_python – 在setup.py中对package_dir和packages设置感到困惑

作者在尝试使用Python的distutils进行项目打包时遇到了问题。主要问题是未能创建dist或构建目录,清单文件创建过程中包含了多余的模块,且构建过程最终以错误告终。该项目包括一个框架文件夹,用于存放多个项目间共享的包和模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是我的项目目录结构,其中包括项目文件夹,加上

一个“框架”文件夹,包含在多个项目之间共享的包和模块

它位于与项目文件夹的层次结构相同的级别:

--------------------------------------------------------------

Framework/

package1/

__init__.py

mod1.py

mod2.py

package2/

__init__.py

moda.py

modb.py

My_Project/

src/

main_package/

__init__.py

main_module.py

setup.py

README.txt

--------------------------------------------------------------

这是我的setup.py文件的内容部分列表:

--------------------------------------------------------------

from distutils.core import setup

setup(packages=['package1',

'package2.moda',

'main_package'],

package_dir={'package1': '../Framework/package1',

'package2.moda': '../Framework/package2',

'main_package': 'src/main_package'})

--------------------------------------------------------------

以下是问题:

>没有创建dist或构建目录

>清单文件被创建,但是package2中的所有模块都被列出,而不仅仅是“moda.py”模块

>构建以一个错误结束:

README.txt:功能不正确

我不知道我是否有一个问题(可能与我的目录结构相关),或者如果我有多个问题,但我已经阅读了所有可以在Python应用程序的分发中找到的内容,而且我很失望.

colcon build --packages-select service_test Starting >>> service_test Traceback (most recent call last):t - 0.3s] File "<string>", line 1, in <module> File "/usr/lib/python3.10/distutils/core.py", line 215, in run_setup exec(f.read(), g) File "<string>", line 15, in <module> NameError: name 'package_name' is not defined --- stderr: service_test Traceback (most recent call last): File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__ rc = await self.task(*args, **kwargs) File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__ return await task_method(*args, **kwargs) File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_python/build.py", line 51, in build setup_py_data = get_setup_data(self.context.pkg, env) File "/usr/lib/python3/dist-packages/colcon_core/task/python/__init__.py", line 20, in get_setup_data return dict(pkg.metadata[key](env)) File "/usr/lib/python3/dist-packages/colcon_ros/package_augmentation/ros_ament_python.py", line 57, in getter return get_setup_information( File "/usr/lib/python3/dist-packages/colcon_python_setup_py/package_identification/python_setup_py.py", line 249, in get_setup_information _setup_information_cache[hashable_env] = _get_setup_information( File "/usr/lib/python3/dist-packages/colcon_python_setup_py/package_identification/python_setup_py.py", line 296, in _get_setup_information result = subprocess.run( File "/usr/lib/python3.10/subprocess.py", line 526, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['/usr/bin/python3', '-c', 'import sys;from contextlib import suppress;exec("with suppress(ImportError): from setuptools.extern.packaging.specifiers import SpecifierSet");exec("with suppress(ImportError): from packaging.specifiers import SpecifierSet");from distutils.core import run_setup;dist = run_setup( \'setup.py\', script_args=(\'--dry-run
03-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值