Saya telah menginstal perpustakaan menggunakan perintah
pip install git+git://github.com/mozilla/elasticutils.git
yang menginstalnya langsung dari repositori Github. Ini berfungsi dengan baik dan saya ingin memiliki ketergantungan itu pada saya requirements.txt
. Saya telah melihat tiket lain seperti ini tetapi itu tidak menyelesaikan masalah saya. Jika saya meletakkan sesuatu seperti
-f git+git://github.com/mozilla/elasticutils.git
elasticutils==0.7.dev
dalam requirements.txt
file, pip install -r requirements.txt
hasil dalam output berikut:
Downloading/unpacking elasticutils==0.7.dev (from -r requirements.txt (line 20))
Could not find a version that satisfies the requirement elasticutils==0.7.dev (from -r requirements.txt (line 20)) (from versions: )
No distributions matching the version for elasticutils==0.7.dev (from -r requirements.txt (line 20))
The dokumentasi file persyaratan tidak menyebutkan link menggunakan git+git
specifier protokol, jadi mungkin ini tidak didukung.
Adakah yang punya solusi untuk masalah saya?
git+git
varian (yang berfungsi). Dalamrequirements.txt
versi Anda bekerja, jadi terima kasih banyak :)docs
Link tidak bekerja untuk saya; Saya sudah menggunakan yang lebih tua .-e git+git://
bukan-e git://
? Saya mendapat pesan "harus berupa jalur ke proyek lokal atau url VCS yang dimulai dengan svn +, git +, hg +, atau bzr +" pesan kesalahan.Biasanya
requirements.txt
file Anda akan terlihat seperti ini:Untuk menentukan repo Github, Anda tidak perlu
package-name==
konvensi.Contoh di bawah ini memperbarui
package-two
menggunakan repo GitHub. Teks di antara@
dan#
menunjukkan spesifikasi paket.Tentukan komitmen hash (
41b95ec
dalam konteks yang diperbaruirequirements.txt
):Tentukan nama cabang (
master
):Tentukan tag (
0.1
):Tentukan rilis (
3.7.1
):Catatan yang
#egg=package-two
bukan komentar di sini, itu adalah untuk secara eksplisit menyatakan nama paketPosting blog ini memiliki lebih banyak diskusi tentang topik tersebut.
sumber
-e
opsi command-line ( ). Terima kasih telah menunjukkan perpaduan keduanya sehingga saya dapat menempatkan ini dalam konteks!3.7.1
dengangit+git://github.com/path/to/package-two@releases/tag/v3.7.1#egg=package-two
tidak berhasil untuk saya. Apa yang berhasil untuk saya adalahgit+git://github.com/path/to/[email protected]#egg=package-two
.git+git://...
Notasi - notasi itu entah bagaimana menyebabkan kesalahan ssh-relatif pada kotak Linux saya. Jadi saya akhirnya beralih kegit+https://...
notasi dan kemudian mereka bekerja dengan sempurna.requirements.txt
memungkinkan cara-cara berikut untuk menentukan ketergantungan pada sebuah paket di repositori git pada pip 7.0: 1Untuk Github, itu artinya Anda dapat melakukan (perhatikan yang dihilangkan
-e
):Mengapa ada jawaban ekstra?
Saya agak bingung dengan
-e
bendera di jawaban lain jadi inilah klarifikasi saya:The
-e
atau--editable
bendera berarti bahwa paket tersebut dipasang di<venv path>/src/SomeProject
dan dengan demikian tidak dalam terkubur<venv path>/lib/pythonX.X/site-packages/SomeProject
itu lain akan ditempatkan di. 2Dokumentasi
sumber
-e
berikutnyapip freeze
mungkin tidak memberikan hasil yang benar untuk paket iniPertama, instal dengan
git+git
ataugit+https
, dengan cara apa pun yang Anda tahu. Contoh menginstalkronok
cabangbrabeion
proyek:Kedua, gunakan
pip freeze > requirements.txt
untuk mendapatkan hal yang benar di blog Andarequirements.txt
. Dalam hal ini, Anda akan mendapatkannyaKetiga, uji hasilnya:
sumber
no such option: -e
git+https
? Dalam teks yang Anda katakangit+git
dan dalam kodegit+https
Sejak pip
v1.5
, (dirilis 1 Januari 2014: CHANGELOG , PR ) Anda juga dapat menentukan subdirektori dari git repo yang berisi modul Anda. Sintaksnya terlihat seperti ini:Catatan: Sebagai pembuat modul pip, idealnya Anda mungkin ingin menerbitkan modul Anda di repo tingkat atas sendiri jika Anda bisa. Namun fitur ini bermanfaat untuk beberapa repo yang sudah ada sebelumnya yang berisi modul python di subdirektori. Anda mungkin terpaksa menginstalnya dengan cara ini jika mereka tidak dipublikasikan ke pypi juga.
sumber
Saya menemukan itu agak sulit untuk mendapatkan pip3 (v9.0.1, sebagaimana diinstal oleh manajer paket Ubuntu 18.04) untuk benar-benar menginstal hal yang saya katakan untuk diinstal. Saya memposting jawaban ini untuk menghemat waktu siapa pun yang mengalami masalah ini.
Gagal memasukkan ini ke dalam file requirement.txt:
Maksud "gagal" yang saya maksud adalah ketika mengunduh kode dari Git, akhirnya menginstal versi asli dari kode tersebut, seperti yang ditemukan di PyPi, alih-alih kode dalam repo di cabang itu.
Namun, menginstal commit bukannya nama cabang berfungsi:
sumber