- Posts: 39
- Thank you received: 0
Best practice for installing custom Python packages in LinuxCNC?
- workshop54
- Topic Author
- Offline
- Junior Member
-
Less
More
1 year 5 months ago #328446
by workshop54
Hi all,
I’ve developed a custom Python package — and not just a loose .py file, but a real multi-module package, complete with pyproject.toml, unit tests, internal structure, and even a __str__ for logging prettiness. Yes, I know, it’s total overkill for something that just drives the lubrication pump… but hey, it’s fun
The code I wrote can be found here if anyone is interested: github.com/johanvergeer/maho-mh400e-conf...ree/main/lubrication
Now I want to use this package from a Python script that’s launched via loadusr in my machine config.
Some context:
Any advice or patterns you use would be greatly appreciated!
Cheers,
Johan
Hi all,
I’ve developed a custom Python package — and not just a loose .py file, but a real multi-module package, complete with pyproject.toml, unit tests, internal structure, and even a __str__ for logging prettiness. Yes, I know, it’s total overkill for something that just drives the lubrication pump… but hey, it’s fun
The code I wrote can be found here if anyone is interested: github.com/johanvergeer/maho-mh400e-conf...ree/main/lubrication
Now I want to use this package from a Python script that’s launched via loadusr in my machine config.
Some context:
- The script uses linuxcnc, hal, and qtvcp modules.
- LinuxCNC runs on the global system Python interpreter as far as I can see, which means my package has to be available outside of any virtual environment.
- Installing with pip install . into the global Python environment technically works, but it’s strongly discouraged on modern Debian-based systems due to PEP 668. I’ve already seen Poetry try to uninstall half of /usr/lib/python3
- Virtualenvs don’t help much either, since they can’t see LinuxCNC’s compiled modules.
- Adding my repo folder to sys.path is possible, but feels like duct tape.
- Is it acceptable to install your own packages into something like /usr/lib/python3/dist-packages/?
- Is there an officially recommended way to include custom Python packages that need to be imported across multiple files or used in different HAL components?
Any advice or patterns you use would be greatly appreciated!
Cheers,
Johan
Please Log in to join the conversation.
- workshop54
- Topic Author
- Offline
- Junior Member
-
Less
More
- Posts: 39
- Thank you received: 0
1 year 5 months ago #328459
by workshop54
Replied by workshop54 on topic Best practice for installing custom Python packages in LinuxCNC?
Fully agreed — if LinuxCNC ever gets a proper Java API, I’ll gladly throw my Python into the chip tray
Until then, I’ll just keep pretending my Python package has structure and discipline… while knowing deep down it’s all held together by logging statements and good intentions
Until then, I’ll just keep pretending my Python package has structure and discipline… while knowing deep down it’s all held together by logging statements and good intentions
Please Log in to join the conversation.
- tommylight
-
- Away
- Administrator
-
Less
More
- Posts: 22012
- Thank you received: 4
1 year 5 months ago #328463
by tommylight
Replied by tommylight on topic Best practice for installing custom Python packages in LinuxCNC?
If you want to move away from Python, try "Ruby on Rails".
Going from Python to Java is absolutely moving backwards.
Going from Python to Java is absolutely moving backwards.
Please Log in to join the conversation.
1 year 5 months ago #328504
by JT
Replied by JT on topic Best practice for installing custom Python packages in LinuxCNC?
Why not just build a deb and install your package?
github.com/jethornton/simple-deb
github.com/jethornton/simple-pyqt5-deb
Or if you're using Flex GUI you can just add it to your ini and it gets imported.
gnipsel.com/linuxcnc/flexgui/python.html
JT
github.com/jethornton/simple-deb
github.com/jethornton/simple-pyqt5-deb
Or if you're using Flex GUI you can just add it to your ini and it gets imported.
gnipsel.com/linuxcnc/flexgui/python.html
JT
Please Log in to join the conversation.
1 year 5 months ago #328740
by rodw
www.reddit.com/r/pythontips/comments/122...s_switch_statements/
Personally I much prefer python over php and Java but C I am much more comfortable with.
It just annoys me that Python can do things in 100 lines that would take 1000 in C
Replied by rodw on topic Best practice for installing custom Python packages in LinuxCNC?
It does now since 3.10Python does not even have switch statements!
www.reddit.com/r/pythontips/comments/122...s_switch_statements/
Personally I much prefer python over php and Java but C I am much more comfortable with.
It just annoys me that Python can do things in 100 lines that would take 1000 in C
Please Log in to join the conversation.
- tommylight
-
- Away
- Administrator
-
Less
More
- Posts: 22012
- Thank you received: 4
1 year 5 months ago #329044
by tommylight
Replied by tommylight on topic Best practice for installing custom Python packages in LinuxCNC?
You can have both, try Assembly !
Coding is not about speed, it's about the journey.
Please Log in to join the conversation.
Time to create page: 0.103 seconds
