Dalam nodejs, saya bisa melakukannya npm install package --save-dev
untuk menyimpan paket yang diinstal ke dalam paket.
Bagaimana cara mencapai hal yang sama di manajer paket Python pip
? Saya ingin menyimpan nama paket dan versinya menjadi, katakanlah, requirements.pip
tepat setelah menginstal paket menggunakan sesuatu seperti pip install package --save-dev requirements.pip
.
pip freeze > requirements.pip
npm install package --save-dev
menggabungkan instalasi dan penambahan ke file persyaratan simpul_npm pada saat yang sama. Itu lebih berguna. Denganpip freeze
saya harus melakukan dua perintah untuk melakukan hal yang sama: 1)pip install package
2)pip freeze > requirements.pip
--save
opsi.Jawaban:
Tidak ada yang setara dengan
pip
.Cara terbaik adalah dengan
pip install package && pip freeze > requirements.txt
Anda dapat melihat semua opsi yang tersedia di halaman dokumentasinya .
Jika itu benar-benar mengganggu Anda, tidak akan terlalu sulit untuk menulis skrip bash khusus (
pips
) yang mengambil-s
argumen dan membeku kerequirements.txt
file Anda secara otomatis.Edit 1
Sejak menulis ini, tidak ada perubahan dalam menyediakan
--save-dev
opsi otomatis yang mirip dengan NPM namun Kenneth Reitz (penulisrequests
dan banyak lagi) telah merilis beberapa info lebih lanjut tentang alur kerja pip yang lebih baik untuk menanganipip
pembaruan dengan lebih baik .Edit 2
Ditautkan dari artikel "alur kerja pip yang lebih baik" di atas, sekarang direkomendasikan untuk digunakan
pipenv
untuk mengelola persyaratan dan lingkungan virtual. Setelah banyak menggunakan ini baru-baru ini saya ingin merangkum betapa sederhananya transisi ini:Instal
pipenv
(di Mac)pipenv
membuat dan mengelola lingkungan virtual itu sendiri sehingga dalam sebuah proyek dengan yang sudah adarequirements.txt
, menginstal semua persyaratan (saya menggunakan Python3.7 tetapi Anda dapat menghapus--three
jika Anda tidak) sesederhana:Mengaktifkan virtualenv untuk menjalankan perintah juga mudah
Persyaratan pemasangan akan secara otomatis memperbarui
Pipfile
danPipfile.lock
Juga dimungkinkan untuk memperbarui paket-paket yang kedaluwarsa
Saya sangat merekomendasikan memeriksanya terutama jika berasal dari
npm
latar belakang karena memiliki rasa yang mirip denganpackage.json
danpackage-lock.json
sumber
pipenv
memungkinkan Anda menentukan adev-packages
di AndaPipfile
dan / atau menggunakan--dev
(atau-d
) dari baris perintah. misalnyapipenv install --dev nose2
Garis sederhana ini adalah titik awal. Anda dapat dengan mudah membuat perintah bash untuk menggunakan kembali PAKET di baris tersebut.
Berkat @devsnd untuk contoh fungsi bash sederhana:
Untuk menggunakannya, jalankan saja:
sumber
P=Flask pip install $P && pip freeze | grep $P >> requirements.txt
Saya telah membuat paket python yang membungkus pipm yang sebenarnya
pip
disebut . Semua perintah akan berfungsi sebagaimana adanya, ditambah lagi akan tercermin dalam file persyaratan. Tidak seperti (alat serupa yang saya temukan dan tidak dapat digunakan) itu dapat menangani banyak file dan lingkungan (tes, dev, produksi, dll.). Ini juga memiliki perintah untuk memutakhirkan semua / semua dependensi Anda.pip
pip-save
instalasi
pipm install pkg-name
instalasi sebagai ketergantungan pengembangan
pipm install pkg-name --dev
instalasi sebagai ketergantungan pengujian
pipm install pkg-name --test
pemindahan
pipm uninstall pkg-name
perbarui semua dependensi Anda
pipm update
instal semua dependensi Anda dari file persyaratan
pipm install
termasuk dependensi pengembangan
pipm install --dev
sumber
Pembaruan: tampaknya, pipenv tidak secara resmi didukung oleh pengelola Python , dan halaman yang ditautkan sebelumnya dimiliki oleh organisasi yang berbeda. Alat ini memiliki pro dan kontra, tetapi solusi di bawah ini masih mencapai hasil yang dicari OP.
pipenv adalah alat manajemen ketergantungan yang membungkus
pip
dan, antara lain, menyediakan apa yang Anda tanyakan:https://pipenv.kennethreitz.org/en/latest/#example-pipenv-workflow
A
Pipfile
adalah padanan langsung daripackage.json
, sementaraPipfile.lock
berkorespondensi denganpackage-lock.json
.sumber
Saya melakukan peretasan cepat
pip
untuk menambahkan--save
opsi untuk menginstal / menghapus perintah.Silakan lihat di blog saya untuk informasi lebih lanjut tentang peretasan ini: http://blog.abhiomkar.in/2015/11/12/pip-save-npm-like-behaviour-to-pip/
Instalasi (GitHub): https://github.com/abhiomkar/pip-save
Semoga ini membantu.
sumber
Anda dapat menyimpannya secara manual di Makefile (atau file teks dan kemudian diimpor dalam Makefile Anda):
dan kemudian jalankan
make install
sumber
Saya menggunakan baris perintah kecil ini untuk menginstal paket dan menyimpan versinya di
requirements.txt
:pkg=package && pip install $pkg && echo $(pip freeze | grep -i $pkg) >> requirements.txt
sumber
Bagaimana kalau membuat fungsi shell untuk melakukan ini? Tambahkan kode di bawah ini ke
~/.profile
atau~/.bashrc
kemudian jalankan
source ~/.profile
atausource ~/.bashrc
untuk mengimpornya ke terminal Anda saat iniketika Anda ingin menginstal && menyimpan paket, jalankan saja, misalnya
pips requests
. setelah paket diinstal, versinya akan disimpan kerequirements.txt
dalam direktori Anda saat ini.sumber