I have a python library that has a dependency on importlib
. importlib
is in the standard library in Python 2.7, but is a third-party package for older pythons. I typically keep my dependencies in a pip-style requirements.txt. Of course, if I put importlib
in here, it will fail if installed on 2.7. How can I conditionally install importlib only if it's not available in the standard lib?
I don't think this is possible with pip and a single requirements file. I can think of two options I'd choose from:
Create a base.txt file that contains most of your packages:
# base.txt
somelib1
somelib2
And create a requirements file for python 2.6:
# py26.txt
-r base.txt
importlib
and one for 2.7:
# py27.txt
-r base.txt
If your library has a setup.py file, you can check the version of python, or just check if the library already exists, like this:
# setup.py
from setuptools import setup
install_requires = ['somelib1', 'somelib2']
try:
import importlib
except ImportError:
install_requires.append('importlib')
setup(
...
install_requires=install_requires,
...
)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With