问题
modules = [Extension("MyLibrary",
src,
language = "c++",
extra_compile_args=["-fopenmp", "-std=c++11", "-DNOLOG4CXX"], # log4cxx is not currently used
extra_link_args=["-fopenmp", "-std=c++11"],
include_dirs=[os.path.join(os.path.expanduser("~"), (os.path.join(gtest, "include"))],
library_dirs=[log4cxx_library, os.path.join(os.path.expanduser("~"), gtest)],
libraries=["log4cxx", "gtest"])]
This is a part of my setup.py script. How do I pass options like include_dirs or library_dirs through command line arguments, so that path could be set up by the user?
回答1:
Think this may be what you're looking for:
http://docs.python.org/2/distutils/configfile.html
回答2:
You can specify it in the setup.cfg file
[build_ext]
include-dir="path/to/your/dir/"
回答3:
If you're using pip install
you can do this to specify library_dirs
, for example:
pip install --install-option=build_ext --install-option="--library-dirs=/absolute/path/to/your/library/directory" YourPackage
or just:
pip install --install-option=build_ext --install-option="-L/absolute/path/to/your/library/directory" YourPackage
--global-option
also appears to work. See https://stackoverflow.com/a/22942120/1843329
From the docs for pip install
:
--install-option Extra arguments to be supplied to the setup.py install command (use like --install-option=”--install-scripts=/usr/local/bin”). Use multiple --install-option options to pass multiple options to setup.py install. If you are using an option with a directory path, be sure to use absolute path.
来源:https://stackoverflow.com/questions/16984753/passing-the-library-path-as-a-command-line-argument-to-setup-py