簡體   English   中英

Python setup.py - 運行 setup.py install 時不要構建輪子

[英]Python setup.py - dont build wheel when running setup.py install

我想使用 setup.py 及其所有功能,但我不想為可安裝項目構建輪子。 是否有旗幟或其他東西只是跳過建築輪子?

這背后的原因是我使用 setuptools 提供的自定義 InstallCommand 將環境變量傳遞給下一個可安裝項目(依賴項),並且在構建輪子時 - 看不到環境變量,因此只有安裝(而不是輪子構建)有效。

編輯:

由於我正在使用構建選項,因此我收到警告:

pip/_internal/commands/install.py:211: UserWarning: 由於使用 --build-options / --global-options / --install-options 禁用所有輪子的使用。

因為我使用了這個自定義 InstallCommand:

class InstallCommand(install):
    user_options = install.user_options + [
    ('environment=', None, 'Specify a production or development environment.'),
]

def initialize_options(self):
    install.initialize_options(self)
    self.environment = None

def finalize_options(self):
    install.finalize_options(self)

    global ENVIRONMENT

    try:
        # Check if environment is set
        is_dev()
    except AssertionError:
        # If not - assert that this class has a set environment
        assert self.environment in ['dev', 'prod'], 'Bad environment propagated from parent project.'
        ENVIRONMENT = self.environment

def run(self):
    install.run(self)

我收到此錯誤:

installing to build/bdist.linux-x86_64/wheel
running install
Traceback (most recent call last):
File "/tmp/pip-req-build-xnp6kolm/setup_helper.py", line 26, in finalize_options
  is_dev()
File "/tmp/pip-req-build-xnp6kolm/setup_helper.py", line 126, in is_dev
assert (prod or dev) is True, 'Environment should be set to dev or prod'
AssertionError: Environment should be set to dev or prod

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/tmp/pip-req-build-xnp6kolm/setup_helper.py", line 29, in finalize_options
  assert self.environment in ['dev', 'prod'], 'Bad environment propagated from parent project.'
AssertionError: Bad environment propagated from parent project.

----------------------------------------
Failed building wheel for ivs-repository-manager - HAVE A NOTICE AT THIS LINE !!! I HAVE RUN SETUP.PY INSTALL, NOT BDIST
Running setup.py clean for ivs-repository-manager
Failed to build ivs-repository-manager

但! 在此異常之后,安裝仍然成功,並且我看到了已安裝的軟件包。 我只是在 setuptools 嘗試構建輪子時收到這些錯誤。

所以似乎在構建用 --install-options 傳播的輪子環境時是看不到的。

找到了解決辦法:

不要使用setup.py install,最好創建一個源碼分發setup.py sdist,然后用pip安裝。 這是示例:

python setup.py sdist
python -m pip install dist/* --install-option=--environment='dev'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM