I have used pip to install PIL. It requires two additional arguments while installation. So the command for installation looks something like this.
pip install PIL --allow-external PIL --allow-unverified PIL
I need to add the PIL package in setup.py file. Adding PIL in the install_requires
list do install PIL but it doesn't work, as I need to install PIL with the additional arguments.
So how can I add the PIL to the install_requires
list with additional arguments ?
Currently, there is no way to specify extra arguments in install_requires
in setup.py. But, I solved my problem of installing dependencies with global-options
by sub-classing setuptools.command.install
class and overriding its run()
method, like following code -
from setuptools import setup
from setuptools.command.install import install
from subprocess import call
class CustomInstall(install):
def run(self):
install.run(self)
call(['pip', 'install', 'PIL', '--allow-external', 'PIL', '--allow-unverified', 'PIL'])
setup( ...
cmdclass={
'install': CustomInstall,
},
)
Just replace PIL with Pillow (in your install_requires). It's a fork of PIL with bugfixes, py3k support and proper hosting. You don't need to change your code.