Я работаю над существующей базой кода Python 3, которая предоставляет setup.py
, поэтому код устанавливается как библиотека Python. Я пытаюсь установить эту внутреннюю библиотеку с ее собственными зависимостями (обычными для науки о данных, например pandas
, pyodbc
, sqlalchemy
и т. Д.).
Я хотел бы иметь эту внутреннюю библиотеку для работы с этими зависимостями и предполагаю, что если эта библиотека установлена, предполагается, что все транзитивные зависимости установлены. Я также хотел бы иметь версию пакета Anaconda (conda
), а не версию pip
.
Я начал с requirements.txt
, но быстро перешел к этому полю в setup.py
:
install_requires=[
"pyodbc>=4.0.27",
"sqlalchemy>=1.3.8",
"pandas>=0.25.1",
"requests>=2.22.0",
"assertpy>=0.14",
"cycler>=0.10.0",
]
Однако когда я запускаю процесс установки:
- либо с
python setup.py install --record installed_files.txt
- или с
pip install .
Я вижу, что идет некоторая компиляция gcc
/ C ++, которая показывает журналы о колесах Python (я не совсем понимаю последствия яиц Python и колес Python, но AFAIK, если conda
доступен, я должен использовать версию conda
, а не яйца / колеса, потому что тогда мне не нужно заботиться о коде C ++ под кодом Python).
Я действительно предпочел бы, чтобы conda
устанавливал эти капли C ++, завернутые в некоторый код Python, в виде библиотек, например. pandas
.
- возможно ли вообще, чтобы
conda
управлял процессом установки, описанным вsetup.py
, поэтому я не имею дело сgcc
? - как я могу убедиться, что другой код Python, зависящий от этой внутренней библиотеки (установленной через
setup.py
), использует те же (переходные) зависимости, определенные в этомsetup.py
?
Независимо от метода установки, как я могу убедиться, что зависимости, например, pandas
тоже установлены? Иногда я вижу, что numpy
как зависимость от pandas
не устанавливается при запуске setup.py
, но я бы не хотел делать это вручную (например, с каким-то requirements.txt
файлом).