As someone's new comments just brought me back to this post, I'll point out that these days there's another good option: uv run.
Python
Welcome to the Python community on the programming.dev Lemmy instance!
π Events
Past
November 2023
- PyCon Ireland 2023, 11-12th
- PyData Tel Aviv 2023 14th
October 2023
- PyConES Canarias 2023, 6-8th
- DjangoCon US 2023, 16-20th (!django π¬)
July 2023
- PyDelhi Meetup, 2nd
- PyCon Israel, 4-5th
- DFW Pythoneers, 6th
- Django Girls Abraka, 6-7th
- SciPy 2023 10-16th, Austin
- IndyPy, 11th
- Leipzig Python User Group, 11th
- Austin Python, 12th
- EuroPython 2023, 17-23rd
- Austin Python: Evening of Coding, 18th
- PyHEP.dev 2023 - "Python in HEP" Developer's Workshop, 25th
August 2023
- PyLadies Dublin, 15th
- EuroSciPy 2023, 14-18th
September 2023
- PyData Amsterdam, 14-16th
- PyCon UK, 22nd - 25th
π Python project:
- Python
- Documentation
- News & Blog
- Python Planet blog aggregator
π Python Community:
- #python IRC for general questions
- #python-dev IRC for CPython developers
- PySlackers Slack channel
- Python Discord server
- Python Weekly newsletters
- Mailing lists
- Forum
β¨ Python Ecosystem:
π Fediverse
Communities
- #python on Mastodon
- c/django on programming.dev
- c/pythorhead on lemmy.dbzer0.com
Projects
- PythΓΆrhead: a Python library for interacting with Lemmy
- Plemmy: a Python package for accessing the Lemmy API
- pylemmy pylemmy enables simple access to Lemmy's API with Python
- mastodon.py, a Python wrapper for the Mastodon API
Feeds
Just in case this comment didn't make it explicitly clear, you can just invoke the python binary inside your venv directly and it will automatically locate all the libraries that are installed in your virtual environment.
To show how this works, you can look at the sys.path
variable to see which paths python will search for modules when you run import statements. Try running python3 -c 'import sys; print(sys.path)'
using your system python, and you will only see system python library paths. Then, try running it again after replacing python3
with the full path to the python3
binary in your venv, and you will see an additional entry in the output with the lib
directory in your venv, which shows that python will also look there for modules when an import statement is executed.
I use pipenv with pyenv together. This works pretty well, also in cron jobs. Just add pipenv run python script.py
to the cron table.
You could package it and install with pipx
Does it need access to anything local? If not, you could run it as an AWS Lambda on a schedule.
Use venv/bin/python app.py to run it.
That works nicely. Thanks π
I use my own Zsh project (zpy) to manage venvs stored like ~/.local/share/venvs/HASH-OF-PROJECT-PATH/venv
, so use zpy's vpy
function to launch a script with its associated Python executable ad-hoc, or add a full path shebang to the script with zpy's vpyshebang
function.
vpy and vpyshebang in the docs
If anyone else is a Zsh fan and has any questions, I'm more than happy to answer or demo.
I think the path to venv should be absolute right?
Just activate the venv and then put it out of your mind. Can activate it with either a relative or absolute path. Doesn't matter which
Yeah, for the most part but really depends on what youβre trying to do specifically.
This. I've experimented by using pex before and one or two other means of executable python wrappers and they suck. Just do as lakeeffect says.
Yep. This is the way.