Note:Python 项目包管理package_dir

本文介绍如何使用 Python 的 distutils 模块来打包和发布自己的 Python 项目。通过实例演示了 setup.py 文件的配置方法,并链接到官方文档及社区文章供进一步学习。

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

/home/jian/laser_ws/src/laser_node/src/laser_node.cpp: In constructor ‘laser_node::laser_node(const char*)’: /home/jian/laser_ws/src/laser_node/src/laser_node.cpp:32:10: error: no matching function for call to ‘laser_node::create_subscription(std::string, int, laser_node::laser_node(const char*)::<lambda()>)’ 32 | }); | ^ In file included from /opt/ros/foxy/include/rclcpp/executors/single_threaded_executor.hpp:28, from /opt/ros/foxy/include/rclcpp/executors.hpp:22, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:146, from /home/jian/laser_ws/src/laser_node/src/laser_node.cpp:11: /opt/ros/foxy/include/rclcpp/node.hpp:213:3: note: candidate: ‘template<class MessageT, class CallbackT, class AllocatorT, class CallbackMessageT, class SubscriptionT, class MessageMemoryStrategyT> std::shared_ptr<SubscriptionT> rclcpp::Node::create_subscription(const string&, const rclcpp::QoS&, CallbackT&&, const rclcpp::SubscriptionOptionsWithAllocator<AllocatorT>&, typename MessageMemoryStrategyT::SharedPtr)’ 213 | create_subscription( | ^~~~~~~~~~~~~~~~~~~ /opt/ros/foxy/include/rclcpp/node.hpp:213:3: note: template argument deduction/substitution failed: /home/jian/laser_ws/src/laser_node/src/laser_node.cpp:32:10: note: couldn’t deduce template parameter ‘MessageT’ 32 | }); | ^ make[2]: *** [CMakeFiles/laser_node.dir/build.make:63:CMakeFiles/laser_node.dir/src/laser_node.cpp.o] 错误 1 make[1]: *** [CMakeFiles/Makefile2:78:CMakeFiles/laser_node.dir/all] 错误 2 make: *** [Makefile:141:all] 错误 2
最新发布
08-01
Initialising tasks...Sstate summary: Wanted 41 Local 0 Mirrors 0 Missed 41 Current 5509 (0% match, 99% complete) Removing 2 stale sstate objects for arch auto8678p1_64_hyp...done. NOTE: Executing Tasks NOTE: Running task 6119 of 10968 (/home/nebula/external_drive/yocto_78_2os/meta/poky/../meta-mediatek-mt8678/recipes-telephonyware/libuciwrapper/libuciwrapper_1.0.0.bb:do_package) NOTE: recipe libuciwrapper-1.0.0-r0: task do_package: Started ERROR: libuciwrapper-1.0.0-r0 do_package: Error executing a python function in exec_func_python() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_func_python() autogenerated', lineno: 2, function: <module> 0001: *** 0002:package_prepare_pkgdata(d) 0003: File: '/home/nebula/external_drive/yocto_78_2os/meta/poky/meta/classes-global/package_pkgdata.bbclass', lineno: 165, function: package_prepare_pkgdata 0161: dest = targetdir + l.replace(stagingdir, "") 0162: if l.endswith("/"): 0163: staging_copydir(l, targetdir, dest, seendirs) 0164: continue *** 0165: staging_copyfile(l, targetdir, dest, postinsts, seendirs) 0166: 0167: bb.note("Installed into pkgdata-sysroot: %s" % str(msg_adding)) 0168: 0169:} File: '/home/nebula/external_drive/yocto_78_2os/meta/poky/meta/classes-global/staging.bbclass', lineno: 165, function: staging_copyfile 0161: os.symlink(linkto, dest) 0162: #bb.warn(c) 0163: else: 0164: try: *** 0165: os.link(c, dest) 0166: except OSError as err: 0167: if err.errno == errno.EXDEV: 0168: bb.utils.copyfile(c, dest) 0169: else: Exception: FileNotFoundError: [Errno 2] No such file or directory: '/home/nebula/external_drive/yocto_78_2os/build-mix/tmp/pkgdata/auto8678p1_64_hyp/uci' -> '/home/nebula/external_drive/yocto_78_2os/build-mix/tmp/work/aarch64-poky-linux/libuciwrapper/1.0.0/pkgdata-sysroot/uci' ERROR: Logfile of failure stored in: /home/nebula/external_drive/yocto_78_2os/build-mix/tmp/work/aarch64-poky-linux/libuciwrapper/1.0.0/temp/log.do_package.36125 NOTE: recipe libuciwrapper-1.0.0-r0: task do_package: Failed ERROR: Task (/home/nebula/external_drive/yocto_78_2os/meta/poky/../meta-mediatek-mt8678/recipes-telephonyware/libuciwrapper/libuciwrapper_1.0.0.bb:do_package) failed with exit code '1' NOTE: Running task 7444 of 10968 (/home/nebula/external_drive/yocto_78_2os/meta/poky/../meta-mediatek-mt8678/recipes-kernel/vendor_modules/virt-grt-kernel.bb:do_package) NOTE: Running task 7470 of 10968 (/home/nebula/external_drive/yocto_78_2os/meta/poky/../meta-mediatek-mt8678/recipes-telephony/speech_daemon_service/speech-daemon-service_1.0.0.bb:do_package) NOTE: Running task 7471 of 10968 (/home/nebula/external_drive/yocto_78_2os/meta/poky/../meta-mediatek-mt8678/recipes-telephony/mtk_phonecall_ioplugin/mtk-phonecall-ioplugin.bb:do_package) WARNING: Recipe virt-grt-kernel sets S variable with trailing slash '/home/nebula/external_drive/yocto_78_2os/build-mix/tmp/work/auto8678p1_64_hyp-poky-linux/virt-grt-kernel/1.0/git/', remove it WARNING: Recipe virt-grt-kernel sets B variable with trailing slash '/home/nebula/external_drive/yocto_78_2os/build-mix/tmp/work/auto8678p1_64_hyp-poky-linux/virt-grt-kernel/1.0/git/', remove it
07-05
~/.../python-for-android-develop/pythonforandroid $ ls __init__.py includes androidndk.py logger.py archs.py patching.py bdistapk.py prerequisites.py bootstrap.py pythonpackage.py bootstraps recipe.py build.py recipes checkdependencies.py recommendations.py distribution.py toolchain.py entrypoints.py tools graph.py util.py ~/.../python-for-android-develop/pythonforandroid $ cat __init__.py __version__ = '2024.01.21' ~/.../python-for-android-develop/pythonforandroid $ cat androidndk.py import sys import os class AndroidNDK: """ This class is used to get the current NDK information. """ ndk_dir = "" def __init__(self, ndk_dir): self.ndk_dir = ndk_dir @property def host_tag(self): """ Returns the host tag for the current system. Note: The host tag is ``darwin-x86_64`` even on Apple Silicon macs. """ return f"{sys.platform}-x86_64" @property def llvm_prebuilt_dir(self): return os.path.join( self.ndk_dir, "toolchains", "llvm", "prebuilt", self.host_tag ) @property def llvm_bin_dir(self): return os.path.join(self.llvm_prebuilt_dir, "bin") @property def clang(self): return os.path.join(self.llvm_bin_dir, "clang") @property def clang_cxx(self): return os.path.join(self.llvm_bin_dir, "clang++") @property def llvm_binutils_prefix(self): return os.path.join(self.llvm_bin_dir, "llvm-") @property def llvm_ar(self): return f"{self.llvm_binutils_prefix}ar" @property def llvm_ranlib(self): return f"{self.llvm_binutils_prefix}ranlib" @property def llvm_objcopy(self): return f"{self.llvm_binutils_prefix}objcopy" @property def llvm_objdump(self): return f"{self.llvm_binutils_prefix}objdump" @property def llvm_readelf(self): return f"{self.llvm_binutils_prefix}readelf" @property def llvm_strip(self): return f"{self.llvm_binutils_prefix}strip" @property def sysroot(self): return os.path.join(self.llvm_prebuilt_dir, "sysroot") @property def sysroot_include_dir(self): return os.path.join(self.sysroot, "usr", "include") @property def sysroot_lib_dir(self): return os.path.join(self.sysroot, "usr", "lib") @property def libcxx_include_dir(self): return os.path.join(self.sysroot_include_dir, "c++", "v1") ~/.../python-for-android-develop/pythonforandroid $
03-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值