Passing the library path as a command line argumen

2020-07-04 04:59发布

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?

3条回答
Melony?
2楼-- · 2020-07-04 05:10

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.

查看更多
▲ chillily
3楼-- · 2020-07-04 05:26

You can specify it in the setup.cfg file

[build_ext]
include-dir="path/to/your/dir/"
查看更多
Viruses.
4楼-- · 2020-07-04 05:27

Think this may be what you're looking for:

http://docs.python.org/2/distutils/configfile.html

查看更多
登录 后发表回答