Dalam projek Python, kami biasanya perlu menggunakan banyak perpustakaan pihak ketiga untuk menyediakan fungsi dan alatan tambahan. Walau bagaimanapun, ia bukan amalan yang baik untuk memuat naik perpustakaan ini terus ke repositori Git, kerana ia akan menjadikan pangkalan kod terlalu kembung dan sukar untuk diurus. Selain itu, kadangkala anda perlu memasang versi kebergantungan tertentu apabila menggunakan aplikasi anda.
Pada masa ini, anda boleh menggunakan fail requirements.txt untuk mengurus kebergantungan yang diperlukan oleh projek. Fail ini menyenaraikan semua kebergantungan yang diperlukan oleh projek bersama-sama dengan nombor versi mereka, memudahkan orang lain memasang dan menjalankan semua kebergantungan yang diperlukan untuk projek itu. Membaca fail ini menggunakan arahan pip memuat turun dan memasang semua kebergantungan tersenarai secara automatik, yang sangat memudahkan proses permulaan/pengerahan projek.
Oleh itu, menjana fail requirements.txt adalah sangat penting untuk mengurus kebergantungan projek Python, yang boleh memastikan kebolehulangan, mudah alih dan kebolehselenggaraan projek.
Buka terminal dalam direktori akar projek dan jalankan arahan berikut untuk memasang pipreqs:
pip install pipreqs
Jalankan arahan berikut untuk menjana fail requirements.txt:
pipreqs . --encoding=utf8 --force
Antaranya, . –pilihan paksa memaksa menimpa dokumen keperluan.txt sedia ada.
Apabila pelaksanaan selesai, anda boleh melihat fail requirements.txt yang dijana dalam direktori akar projek.
Untuk menggunakan pip untuk menjana fail requirements.txt projek Python semasa, sila ikut langkah di bawah:
1. Pastikan anda telah memasang pip dan persekitaran maya.
2. Buka terminal dalam persekitaran maya dan masukkan direktori akar projek.
3 Jalankan arahan berikut untuk menjana fail requirements.txt yang mengandungi semua kebergantungan:
pip freeze > requirements.txt
Selepas pelaksanaan, anda boleh Di bawah anda akan melihat teks. fail bernama requirements.txt, yang mengandungi semua kebergantungan dan nombor versinya.
Perlu diambil perhatian bahawa arahan pip freeze akan mengeluarkan semua pakej yang dipasang dan maklumat versinya ke konsol. Fail requirements.txt boleh dijana dengan menulis hasil output ke fail menggunakan simbol ubah hala >. Walau bagaimanapun, fail ini mungkin mengandungi beberapa kebergantungan yang tidak perlu, seperti perpustakaan dan alat ujian yang disertakan dengan sistem. Oleh itu, apabila menggunakan fail requirements.txt yang dijana, adalah disyorkan untuk menyemak dan memadam kebergantungan yang tidak perlu secara manual untuk mengurangkan saiz projek.
Berikut ialah fail requirement.txt yang dijana Anda dapat melihat bahawa banyak kebergantungan yang tidak perlu dijana
absl-py==1.0.0 addict==2.4.0 aiohttp==3.7.4.post0 alembic==1.8.1 argon2-cffi @ file:///opt/conda/conda-bld/argon2-cffi_1645000214183/work argon2-cffi-bindings @ file:///C:/ci/argon2-cffi-bindings_1644569848815/work astunparse==1.6.3 async-timeout==3.0.1 attrs @ file:///opt/conda/conda-bld/attrs_1642510447205/work backcall @ file:///home/ktietz/src/ci/backcall_1611930011877/work beautifulsoup4 @ file:///tmp/build/80754af9/beautifulsoup4_1631874778482/work bilibili-api==5.1.2 bleach @ file:///opt/conda/conda-bld/bleach_1641577558959/work blinker==1.5 cachetools==5.0.0 certifi @ file:///C:/b/abs_85o_6fm0se/croot/certifi_1671487778835/work/certifi cffi @ file:///C:/ci_310/cffi_1642682485096/work chardet==4.0.0 charset-normalizer==2.0.12 click @ file:///C:/ci/click_1646038601470/work cloudpickle @ file:///tmp/build/80754af9/cloudpickle_1632508026186/work colorama @ file:///tmp/build/80754af9/colorama_1607707115595/work cryptography @ file:///C:/ci/cryptography_1652101770956/work cycler==0.11.0 cytoolz==0.11.0 dask==1.1.4 debugpy @ file:///C:/ci/debugpy_1637091911212/work decorator @ file:///opt/conda/conda-bld/decorator_1643638310831/work defusedxml @ file:///tmp/build/80754af9/defusedxml_1615228127516/work dnspython==2.3.0 docopt==0.6.2 einops==0.4.1 email-validator==1.3.1 entrypoints==0.3 fastjsonschema @ file:///tmp/build/80754af9/python-fastjsonschema_1620414857593/work/dist Flask==2.2.3 Flask-Email==1.4.4 Flask-Mail==0.9.1 Flask-Migrate==3.1.0 Flask-Script==2.0.6 Flask-SQLAlchemy @ file:///tmp/build/80754af9/flask-sqlalchemy_1616180561581/work Flask-WTF==1.1.1 flatbuffers==23.1.21 fonttools==4.30.0 fvcore==0.1.5.post20220305 gast==0.4.0 google-auth==2.6.5 google-auth-oauthlib==0.4.6 google-pasta==0.2.0 greenlet @ file:///C:/ci/greenlet_1628888257991/work grpcio==1.45.0 grpcio-tools==1.45.0 h6py @ file:///C:/ci/h6py_1659089886851/work idna==3.3 imagecodecs @ file:///C:/ci/imagecodecs_1635529223557/work imageio @ file:///tmp/build/80754af9/imageio_1617700267927/work importlib-metadata @ file:///C:/ci/importlib-metadata_1648562631189/work importlib-resources==5.9.0 iopath==0.1.9 ipykernel @ file:///C:/ci/ipykernel_1647000985174/work/dist/ipykernel-6.9.1-py3-none-any.whl ipython @ file:///C:/ci/ipython_1643800131373/work ipython-genutils @ file:///tmp/build/80754af9/ipython_genutils_1606773439826/work ipywidgets @ file:///tmp/build/80754af9/ipywidgets_1634143127070/work itsdangerous @ file:///tmp/build/80754af9/itsdangerous_1621432558163/work jedi @ file:///C:/ci/jedi_1644297241925/work Jinja2 @ file:///C:/b/abs_7cdis66kl9/croot/jinja2_1666908141852/work joblib @ file:///C:/b/abs_e60_bwl1v6/croot/joblib_1666298845728/work jsonschema @ file:///Users/ktietz/demo/mc3/conda-bld/jsonschema_1630511932244/work jupyter==1.0.0 jupyter-client @ file:///opt/conda/conda-bld/jupyter_client_1643638337975/work jupyter-console @ file:///opt/conda/conda-bld/jupyter_console_1647002188872/work jupyter-core @ file:///C:/ci/jupyter_core_1646976467633/work jupyterlab-pygments @ file:///tmp/build/80754af9/jupyterlab_pygments_1601490720602/work jupyterlab-widgets @ file:///tmp/build/80754af9/jupyterlab_widgets_1609884341231/work keras==2.11.0 kiwisolver @ file:///C:/ci/kiwisolver_1653274189334/work labelme==3.16.7 libclang==15.0.6.1 loguru @ file:///C:/ci/loguru_1643616607274/work lxml==4.6.5 Mako==1.2.2 Markdown==3.3.6 MarkupSafe @ file:///C:/ci/markupsafe_1654508076077/work matplotlib==3.5.1 matplotlib-inline @ file:///tmp/build/80754af9/matplotlib-inline_1628242447089/work mistune @ file:///C:/ci/mistune_1594373272338/work mkl-fft==1.3.1 mkl-random @ file:///C:/ci/mkl_random_1626186163140/work mkl-service==2.4.0 mmcv==1.6.2 multidict==6.0.2 nbclient @ file:///tmp/build/80754af9/nbclient_1645431659072/work nbconvert @ file:///C:/ci/nbconvert_1649759177374/work nbformat @ file:///C:/ci/nbformat_1649845122517/work nest-asyncio @ file:///C:/ci/nest-asyncio_1649848126026/work networkx==2.2 notebook @ file:///C:/ci/notebook_1645002740769/work numpy @ file:///C:/ci/numpy_and_numpy_base_1649782933444/work oauthlib==3.2.0 opencv-python==4.5.5.64 openslide-python==1.2.0 opt-einsum==3.3.0 packaging @ file:///tmp/build/80754af9/packaging_1637314298585/work pandas==1.3.5 pandocfilters @ file:///opt/conda/conda-bld/pandocfilters_1643405455980/work parso @ file:///opt/conda/conda-bld/parso_1641458642106/work pickleshare @ file:///tmp/build/80754af9/pickleshare_1606932040724/work Pillow==9.0.1 pipreqs==0.4.11 portalocker==2.4.0 prettytable==3.3.0 prometheus-client @ file:///opt/conda/conda-bld/prometheus_client_1643788673601/work prompt-toolkit @ file:///tmp/build/80754af9/prompt-toolkit_1633440160888/work protobuf==3.19.6 pyasn1==0.4.8 pyasn1-modules==0.2.8 pycparser @ file:///tmp/build/80754af9/pycparser_1636541352034/work pyecharts==1.9.1 pygame==2.2.0 Pygments @ file:///opt/conda/conda-bld/pygments_1644249106324/work PyMySQL @ file:///C:/ci/pymysql_1610464946597/work pyparsing==3.0.7 PyQt5-Qt5==5.15.2 PyQt5-sip==12.9.1 pyrsistent @ file:///C:/ci/pyrsistent_1636093257833/work pytesseract==0.3.10 python-dateutil @ file:///tmp/build/80754af9/python-dateutil_1626374649649/work pytz @ file:///C:/Windows/TEMP/abs_90eacd4e-8eff-491e-b26e-f707eba2cbe1ujvbhqz1/croots/recipe/pytz_1654762631027/work PyWavelets @ file:///C:/ci/pywavelets_1648728036674/work pywin32==302 pywinpty @ file:///C:/ci_310/pywinpty_1644230983541/work/target/wheels/pywinpty-2.0.2-cp37-none-win_amd64.whl PyYAML==6.0 pyzmq @ file:///C:/ci/pyzmq_1638435182681/work qtconsole @ file:///opt/conda/conda-bld/qtconsole_1649078897110/work QtPy @ file:///opt/conda/conda-bld/qtpy_1649073884068/work regex==2022.10.31 requests==2.27.1 requests-oauthlib==1.3.1 rsa==4.8 scikit-image @ file:///C:/ci/scikit-image_1648196140109/work scikit-learn @ file:///C:/ci/scikit-learn_1642599122269/work scipy @ file:///C:/ci/scipy_1641555141383/work seaborn==0.11.2 Send2Trash @ file:///tmp/build/80754af9/send2trash_1632406701022/work sip==4.19.13 six @ file:///tmp/build/80754af9/six_1644875935023/work soupsieve @ file:///tmp/build/80754af9/soupsieve_1636706018808/work SQLAlchemy @ file:///C:/Windows/Temp/abs_f8661157-660b-49bb-a790-69ab9f3b8f7c8a8s2psb/croots/recipe/sqlalchemy_1657867864564/work tabulate==0.8.9 tensorboard==2.11.2 tensorboard-data-server==0.6.1 tensorboard-plugin-wit==1.8.1 tensorflow==2.11.0 tensorflow-estimator==2.11.0 tensorflow-intel==2.11.0 tensorflow-io-gcs-filesystem==0.31.0 termcolor==1.1.0 terminado @ file:///C:/ci/terminado_1644322782754/work testpath @ file:///tmp/build/80754af9/testpath_1624638946665/work thop==0.0.31.post2005241907 threadpoolctl @ file:///Users/ktietz/demo/mc3/conda-bld/threadpoolctl_1629802263681/work tifffile @ file:///tmp/build/80754af9/tifffile_1627275862826/work timm==0.6.7 toolz @ file:///tmp/build/80754af9/toolz_1636545406491/work torch==1.9.1+cu102 torchaudio==0.9.1 torchmetrics==0.9.3 torchstat==0.0.7 torchvision==0.10.1+cu102 tornado @ file:///C:/ci/tornado_1606935947090/work tqdm==4.63.0 traitlets @ file:///tmp/build/80754af9/traitlets_1636710298902/work typing_extensions @ file:///opt/conda/conda-bld/typing_extensions_1647553014482/work urllib3==1.26.9 wcwidth @ file:///Users/ktietz/demo/mc3/conda-bld/wcwidth_1629357192024/work webencodings==0.5.1 Werkzeug==2.2.3 widgetsnbextension @ file:///C:/ci/widgetsnbextension_1645009553925/work win32-setctime @ file:///home/tkoch/Workspace/win32_setctime/win32_setctime_1643630045199/work wincertstore==0.2 wrapt==1.15.0 WTForms==3.0.1 xlwt==1.3.0 yacs==0.1.8 yapf==0.32.0 yarg==0.1.9 yarl==1.7.2 zipp @ file:///C:/ci/zipp_1652274072582/work
Atas ialah kandungan terperinci Cara cepat menjana requests.txt untuk projek ini dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!