डिपेंडेंसी से निपटना

Python पैकेज विकसित करना

James Fulton

Climate informatics researcher

डिपेंडेंसी क्या हैं?

  • आपके पैकेज के अंदर इम्पोर्ट किए गए अन्य पैकेज
  • mymodule.py के अंदर:
# ये इम्पोर्ट किए गए पैकेज डिपेंडेंसी हैं
import numpy as np
import pandas as pd
...
Python पैकेज विकसित करना

setup.py में डिपेंडेंसी जोड़ना

from setuptools import setup, find_packages

setup(
    ...
    install_requires=['pandas', 'scipy', 'matplotlib'],
)
Python पैकेज विकसित करना

डिपेंडेंसी वर्ज़न नियंत्रित करना

from setuptools import setup, find_packages

setup(
    ...
    install_requires=[

'pandas>=1.0',
'scipy==1.1',
'matplotlib>=2.2.1,<3'
], )
Python पैकेज विकसित करना

डिपेंडेंसी वर्ज़न नियंत्रित करना

from setuptools import setup, find_packages

setup(
    ...
    install_requires=[

'pandas>=1.0', # अच्छा 'scipy==1.1', # बुरा 'matplotlib>=2.2.1,<3' # अच्छा ], )
  • संभव हो तो पैकेज वर्ज़न की रेंज खुली रखें
  • अनयूज़्ड डिपेंडेंसी हटाएँ
Python पैकेज विकसित करना

Python वर्ज़न

from setuptools import setup, find_packages

setup(
    ...
    python_requires='>=2.7, !=3.0.*, !=3.1.*',
)
Python पैकेज विकसित करना

डिपेंडेंसी और पैकेज वर्ज़न चुनना

  • पैकेज हिस्ट्री या रिलीज़ नोट्स देखें
  • अलग-अलग वर्ज़न टेस्ट करें

NumPy रिलीज़ नोट्स का एक नमूना.

Python पैकेज विकसित करना

डेवलपरों के लिए एक एनवायरनमेंट बनाना

pip freeze
alabaster==0.7.12
appdirs==1.4.4
argh==0.26.2
...
wrapt==1.11.2
yapf==0.29.0
zipp==3.1.0
Python पैकेज विकसित करना

डेवलपरों के लिए एक एनवायरनमेंट बनाना

पैकेज रिक्वायरमेंट्स को फ़ाइल में सेव करें

pip freeze > requirements.txt

फ़ाइल से रिक्वायरमेंट्स इंस्टॉल करें

pip install -r requirements.txt
mysklearn/
|-- mysklearn
|   |-- __init__.py
|   |-- preprocessing
|   |   |-- __init__.py
|   |   |-- normalize.py
|   |   |-- standardize.py
|   |-- regression
|   |   |-- __init__.py
|   |   |-- regression.py
|   |-- utils.py
|-- setup.py
|-- requirements.txt   <-- डेवलपर एनवायरनमेंट
Python पैकेज विकसित करना

अभ्यास करते हैं!

Python पैकेज विकसित करना

Preparing Video For Download...