相关疑难解决方法(0)

自定义distutils命令

我有一个名为"example"的库,我将其安装到我的全局site-packages目录中.但是,我希望能够安装两个版本,一个用于生产,一个用于测试(我有一个Web应用程序和其他以这种方式版本化的东西).

有没有办法指定,比如"python setup.py stage",它不仅会将不同的蛋安装到site-packages中,还会将模块从"example"重命名为"example_stage"或类似的东西?

如果distutils无法做到这一点,还有其他工具吗?

python deployment distutils

24
推荐指数
3
解决办法
1万
查看次数

如何从'--install-option'获取从pip传递给setup.py的参数?

我正在使用pip 1.4.1,尝试从本地路径安装包,例如:

pip install /path/to/my/local/package
Run Code Online (Sandbox Code Playgroud)

这就是我想要的,这或多或少等同于运行python /path/to/my/local/package/setup.py install,但我想将一些额外的选项/参数传递给我的软件包的setup.py install.

从pip文档中了解到,这可以通过--install-option选项实现,例如:

pip install --install-option="--some-option" /path/to/my/local/package
Run Code Online (Sandbox Code Playgroud)

来自python-virtualenv谷歌集团的这篇文章表明这是可能的.

我不明白的是如何从setup.py中获取传入的"--some-option".我试着看sys.argv,但无论我为"--install-option ="投入什么,sys.argv总是如此:

['-c', 'egg_info', '--egg-base', 'pip-egg-info']
Run Code Online (Sandbox Code Playgroud)

如何从pip install中获取作为"--install-option"传入的内容的值?

python pip setuptools

17
推荐指数
4
解决办法
8477
查看次数

将库路径作为命令行参数传递给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"])]
Run Code Online (Sandbox Code Playgroud)

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

python distutils setup.py python-3.3

10
推荐指数
1
解决办法
7405
查看次数

带有公司签名的SSL证书的Python setuptools

我是python上的setuptools的新手。

我在install_requires列表中添加了一个包'numpy'和'tensorflow'并运行python setup.py install。由于SSL问题,它无法安装。对于基于https的网址,我们使用自签名SSL。

如果是单个软件包的点子,我可以使用--cert选项。据我所知setuptools间接使用pip。如果是这样,是否在运行setup.py时强制其使用--cert选项?

python ssl setuptools setup.py

5
推荐指数
1
解决办法
1018
查看次数

setup.py 中的动态 install_requires

我正在编写一个带有可安装子包的 python 包,如下所示。

\n\n
my_project\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 subpackage1\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 foo.py\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 setup.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 subpackage2\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 bar.py\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 setup.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 setup.py [main]\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的 setup.py 如下所示:

\n\n
from setuptools import setup, find_packages\nfrom setuptools.command.install import install\n\n# new install class\nclass InstallCommand(install):\n    # pass argument subpackage from pip install to setup.py\n    user_options = install.user_options + [\n        (\'subpackage=\', None, None),  \n    ]\n\n    def initialize_options(self):\n        install.initialize_options(self)\n        self.subpackage = None\n\n    def finalize_options(self):\n        install.finalize_options(self)\n\n    def run(self):\n\n        if self.subpackage is None:\n            # install all sub-packages\n            subpackages = [\'my_project.\'+x for x in find_packages(\'./my_project\', exclude=[\'*.tests\', …
Run Code Online (Sandbox Code Playgroud)

python dependencies namespaces setuptools

5
推荐指数
0
解决办法
1349
查看次数

将命令行参数传递给 pip install

我目前正在处理一个导入 Fortran 模块的 Python 项目。在setup.py相似的外观

from numpy.distutils.core import Extension
from numpy.distutils.core import setup

ext = Extension(
    name = "fortran_module",
    sources = ["fortran_module.f90"],
    extra_f90_compile_args = ["-some -compile -arguments"]
)

setup(
    ...,
    ...,
    ...,
    ext_modules = [ext],
    ...,
    ...,
    ...
)
Run Code Online (Sandbox Code Playgroud)

我目前正在安装它pip install -e .,它工作正常。但有时我需要更改extra_f90_compile_args,我想在安装过程中将它们作为命令行参数提供,pip而不是更改setup.py文件。例如这样的事情:

pip install -e --compile_args="-O3 -fbacktrace -fbounds-check -fopenmp" .
Run Code Online (Sandbox Code Playgroud)

是否可以将命令行参数传递pipsetup.py文件中?

与此相关,我还想将不同的设置选项传递到setup.py. 例如

pip install -e --setup=setup1 .
Run Code Online (Sandbox Code Playgroud)

或者

pip install -e --setup=setup2 …
Run Code Online (Sandbox Code Playgroud)

python pip setup.py

2
推荐指数
1
解决办法
5723
查看次数