У меня есть (форк) пакет python, для установки которого требуется дополнительная опция. Я обнаружил, что это можно сделать с помощью параметра --global-option
в pip:
pip install --global-option="cythonize" git+https://github.com/blaiseli/pybedtools.git@fix_missing_headers
Однако этот параметр приводит к сбою установки зависимостей этого пакета, поскольку он также применяется к ним и не распознается.
Как мне сначала отдельно установить зависимости?
Что-то вроде pip install --only-deps <some package>
не существует.
Редактировать
Как указано в в этом ответе , я попытался настроить псевдоним в своем форке пакета, чтобы перед запуском команды cythonize
выполнялся:
$ cat setup.cfg
[wheel]
universal = 1
[nosetests]
detailed-errors = 1
doctest-extension = .pyx .py
[aliases]
install = cythonize install
Как ни странно, команда cythonize
обрабатывается правильно:
$ python3.7 setup.py cythonize
running cythonize
Compiling pybedtools/cbedtools.pyx because it changed.
Compiling pybedtools/featurefuncs.pyx because it changed.
[1/2] Cythonizing pybedtools/cbedtools.pyx
/usr/local/lib/python3.7/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /home/bli/src/pybedtools/pybedtools/cbedtools.pxd
tree = Parsing.p_module(s, pxd, full_module_name)
[2/2] Cythonizing pybedtools/featurefuncs.pyx
/usr/local/lib/python3.7/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /home/bli/src/pybedtools/pybedtools/featurefuncs.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
Но она не распознается, когда является частью псевдонима:
$ python3.7 setup.py install
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help
error: invalid command 'cythonize'