将库路径作为命令行参数传递给setup.py

时间:2013-06-07 12:56:19

标签: python distutils python-3.3 setup.py

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"])]

这是我的setup.py脚本的一部分。如何通过命令行参数传递include_dirs或library_dirs等选项,以便用户可以设置路径?

3 个答案:

答案 0 :(得分:2)

认为这可能是您正在寻找的东西:

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

答案 1 :(得分:2)

您可以在setup.cfg文件中指定它

[build_ext]
include-dir="path/to/your/dir/"

答案 2 :(得分:0)

如果您使用的是pip install,则可以指定library_dirs,例如:

pip install --install-option=build_ext --install-option="--library-dirs=/absolute/path/to/your/library/directory" YourPackage

或者只是:

pip install --install-option=build_ext --install-option="-L/absolute/path/to/your/library/directory" YourPackage

--global-option似乎也可以使用。参见https://stackoverflow.com/a/22942120/1843329

the docspip install

  

-安装选项   要提供给setup.py install命令的额外参数(使用类似   --install-option =”-install-scripts = / usr / local / bin”)。使用多个--install-option选项可以将多个选项传递给setup.py安装。如果您使用带有目录路径的选项,请确保使用   绝对路径。