0
$\begingroup$

Rosanswers logo

Hi. I need to ship to some client ans application based on ROS. I don't want to provide my source code to this client. So I'm planning to ship a tar.gz of the /install folder of catkin_ws or a .deb.

One starting question: does a .pyc file dependent on my system settings? or will my client have the capability to execute my node since he uses the same version of ubuntu and ros?

Supposing it makes sense to ship a .pyc and not a .py file:

The package packing process will take as input the /install folder. The files that end-up in /install are set in the CMakeList.txt So if I want to ship on .pyc files, I should specify them explicitly in the install section of CmakeList

But

  • If I checkout my svn repo in a clean environment, run catkin_make, I get an error since no pyc files have been generated yet and my Camkefile is inconsistent.

  • This works fine if in Cmakefile I specify to install my_file.py but this is not what I want...

So is there a way to force catkin_make to build all the python in .pyc?

Otherwise I need to run this twice with a change in Cmakelist in between... I have lots of proprietary packages to ship, and this is just not OK.

Thanks for any insights

Damien


Originally posted by Damien on ROS Answers with karma: 203 on 2014-09-18

Post score: 4


Original comments

Comment by Jarvis on 2014-09-19:
Hi Damein,

Are you able to run your rospy node with this process? I am trying to do the same process for both C++ and python packages. However, it takes a lot of efforts to run a ros from install directory. Let me know if you have some simple way of doing this?

Comment by Jarvis on 2014-09-19:
You can check my post at [link text](You can look at my post at link text

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

catkin doesn't have any functionality for this.

I'm not even sure compiled python bytecode (.pyc) will run without the original source code.

This stack overflow question has a reasonable overview of the ways to obfuscate and package your python source code.


Originally posted by ahendrix with karma: 47576 on 2014-09-19

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by LSD on 2021-01-12:
The bytecode will run without the source code

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.