requirements.txt
В java, как вы сказали, у нас есть наш pom. xml
В python у вас есть: requirements.txt с таким содержимым:
# Requirements without Version Specifiers #`
nose
nose-cov
beautifulsoup4
# Requirements with Version Specifiers #`
docopt == 0.6.1 # Version Matching. Must be version 0.6.1
keyring >= 4.1.1 # Minimum version 4.1.1
coverage != 3.5 # Version Exclusion. Anything except version 3.5
Mopidy-Dirble ~= 1.1 # Compatible release. Same as >= 1.1, == 1.*
Для установки запустите следующее:
pip install -r requirements.txt
зависимости в java / maven
С maven у нас очень хорошее управление зависимостями:
org.acme.demo.springboot:acme-api:jar:1.0.0
+- mysql:mysql-connector-java:jar:8.0.13:compile
+- io.jsonwebtoken-jjwt:jar:0.9.1:compile
| \- com.fasterxml.jackson.core:jackson-databind:jar:2.9.7:compile
| +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile
| \- com.fasterxml.jackson.core:jackson-core:jar:2.9.7:compile
+- com.jayway.jsonpath:json-path:jar:2.4.0:compile
| +- net.minidev:json-smart:jar:2.3:compile
| | \- net.minidev:accessors-smart:jar:1.2:compile
| | \- org.ow2.asm:asm:jar:5.0.4:compile
| \- org.slf4j:slf4j-api:jar:1.7.25:compile
Например: Мое приложение acme-api и имеет эти зависимости в своем pom. xml:
- mysql: mysql -connector- java который ни от чего не зависит
- io.jsonwebtoken-jjwt который зависит от jackson-databind, jackson-annotations и jackson-core
Если вы посмотрите исходный код jackson-core , вы найдете другой pom. xml с зависимостями, требуемыми jackson-core
Итак, в java / maven любой репозиторий исходного кода должен иметь pom. xml (приложение или библиотека), в котором мы можем найти или загрузить необходимые библиотеки
в зависимости dencies в python
Предыдущая стратегия в java / maven, связанная с pom. xml в любом исходном коде, не используется в python.
Я просмотрел пару публикаций c библиотеки, и я не нахожу requirements.txt внутри них o_O
Просто приложения используют requirements.txt например django.
* Библиотеки 1067 * используют
setup.py вместо
requirements.txt , а необходимые библиотеки жестко закодированы внутри
setup.py :
install_requires=["oauthlib>=3.0.0", "requests>=2.0.0"],
extras_require={"rsa": ["oauthlib[signedtoken]>=3.0.0"]},
requirements.txt как pom. xml
Для стандартизации вы можете использовать requirements.txt в любой из своих библиотек или приложений, изменив настройку .py для чтения значений из requirements.txt вместо жестко запрограммированного install_requires
install_requires=["oauthlib>=3.0.0", "requests>=2.0.0"],
Здесь вы найдете requirements.txt в любом python исходный код, и вы будете немного ближе к нашему Maven в Java