Pip handling for tiamat projects
Project description
Tiamat Pip
Pip handling for tiamat projects
Setup
In order to be able to pip install packages which can be used with your tiamat packaged application
you need to add tiamat-pip as a dependency and your run.py should look similar to:
#!/usr/bin/env python3
import sys
import multiprocessing
import tiamatpip.cli
import tiamatpip.configure
import mainapp
# Configure the path where to install the new packages
tiamatpip.configure.set_user_site_packages_path("THIS SHOULD BE A HARDCODED PATH")
def main(argv):
# Let's see if we should be handling pip related stuff
if tiamatpip.cli.should_redirect_argv(argv):
tiamatpip.cli.process_pip_argv(argv)
# You can choose to `return` but there's really no need since the pip command
# interceptions will trigger a `sys.exit` with the appropriate exit code.
# If we reached this far, it means we're not handling pip stuff
# Your application logic can resume
mainapp.main(argv)
sys.exit(0)
if __name__ == "__main__":
if sys.platform.startswith("win"):
multiprocessing.freeze_support()
main(sys.argv)
Usage
When your package is compiled with tiamat and includes tiamat-pip, the pip commands get
intercepted and the code logic runs within your packaged binary python runtime.
All pip commands and their respective CLI flags are supported.
Showing the pip usage and help
your-project-binary pip --help
your-project-binary pip install --help
Installing a python package
your-project-binary pip install foo
your-project-binary pip install foo>=2.1.0
Listing installed packages
your-project-binary pip list
This will list all of the python packages that were installed using pip, which, are not included in the binary.
Listing packages shipped with the binary
If you want to know which packages, and their respective versions, were shipped with the tiamat binary, issue the following command:
your-project-binary pip frozen
This command is not supported by pip. We intercept the call and get the
package listing from the right place.
The CLI flags for this command are the same as for pip list.
Uninstalling a package
your-project-binary pip uninstall foo
ATTENTION: Only the packages installed by pip can be uninstalled. The packages that were shipped with the binary cannot be uninstalled.
Known Issues
- Getting the version of an upgraded package using
pkg_resources.get_distribution(pkgname).versionreturns the version of the package that was shipped with the tiamat binary and not the upgraded package version. See #11 for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tiamat-pip-1.11.0.tar.gz.
File metadata
- Download URL: tiamat-pip-1.11.0.tar.gz
- Upload date:
- Size: 36.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.8.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8ed5f2b8dde6f19c8421db14c850dcde2ba9e850e984d12d1f5ee658ab22cb9
|
|
| MD5 |
f0a3f396b70e6a2e1f2fb4a91eda5047
|
|
| BLAKE2b-256 |
5ade92a3cc3e5ffcd94edfe6da640516316c378efbe658e2ecef69ff33824cb9
|
File details
Details for the file tiamat_pip-1.11.0-py3-none-any.whl.
File metadata
- Download URL: tiamat_pip-1.11.0-py3-none-any.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.8.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e5b3d9b021eaf83c63697cc5ae53c73a5ab2341b0154fc8977c93578f97eaae
|
|
| MD5 |
8e1b10077f85ddb6069d7075af77f567
|
|
| BLAKE2b-256 |
2d73db8444bd1bd1faa52712df33dfd1231c8f85d638ff7671a242d74ee50a92
|