首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算Python 2包以隐藏源代码?

如何计算Python 2包以隐藏源代码?
EN

Stack Overflow用户
提问于 2022-05-09 07:13:37
回答 1查看 175关注 0票数 0

我有一个带有多个子包的ROS2 (rclpy)包,它们一起工作。为了隐藏源代码,只留下可执行文件来完成工作,我想对包进行cythonize处理。你知道我怎么能用软件包的setup.py和启动文件来做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-31 11:01:53

因此,我会回答我自己的问题,以防有人面临同样的问题。对于用python编写ros2包,最好的方法是分别将所需的cython组件添加到每个包的setup.py中。我已经标记了cython部分(用<--)以获得更好的搁浅。

请注意,在使用colcon构建包后,python源代码的副本将存储在colcon生成的安装目录下。您可以轻松地手动删除它们,并且包应该与生成的c++和共享对象文件一起运行。

代码语言:javascript
复制
from glob import glob
from setuptools import setup
from Cython.Build import cythonize <--
import os

package_name = 'your_package_name_here'

files = package_name + "/*.py"

setup(
    ext_modules=cythonize(files,compiler_directives={'language_level' : "3"},force=True,quiet=True), <--
    name=package_name,
    version='0.0.0',
    packages=[package_name],
    data_files=[
        ('share/ament_index/resource_index/packages',
            ['resource/' + package_name]),
        ('share/' + package_name, ['package.xml']),
        (os.path.join('share', package_name), glob('launch/*.launch.py'))
    ],
    install_requires=['setuptools', "wheel",  "Cython"], <--
    zip_safe=True,
    maintainer='NAME',
    maintainer_email='EMAIL',
    description='TODO: Package description',
    license='TODO: License declaration',
    tests_require=['pytest'],
    entry_points={
        'console_scripts': [
            'SOME CODE HERE',
        ],
    },
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72168194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档