Sepertinya --target
tidak didukung saat menggunakan --editable
bersamaan. Alangkah baiknya jika ini berfungsi. Sementara itu harus ada beberapa diagnostik yang lebih baik seperti
c:\>pip install -t z:\1 -e git+https://github.com/kennethreitz/requests.git#egg=requests
menghasilkan
Obtaining requests from git+https://github.com/kennethreitz/requests.git#egg=requests
Updating c:\python\virtualenv\test\src\requests clone
Running setup.py egg_info for package requests
Downloading/unpacking certifi>=0.0.7 (from requests)
Running setup.py egg_info for package certifi
Downloading/unpacking oauthlib>=0.1.0,<0.2.0 (from requests)
Running setup.py egg_info for package oauthlib
Downloading/unpacking chardet>=1.0.0 (from requests)
Running setup.py egg_info for package chardet
Downloading/unpacking rsa (from oauthlib>=0.1.0,<0.2.0->requests)
Running setup.py egg_info for package rsa
warning: no files found matching 'README'
Downloading/unpacking pyasn1>=0.0.13 (from rsa->oauthlib>=0.1.0,<0.2.0->requests)
Running setup.py egg_info for package pyasn1
Installing collected packages: requests, certifi, oauthlib, chardet, rsa, pyasn1
Running setup.py develop for requests
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: option --home not recognized
Complete output from command c:\python\virtualenv\test\Scripts\python.exe -c "import setuptools; __file__='c:\\python\\virtualenv\\test\\src\\requests\\setup.py'; exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" develop --no-deps --home=c:\users\piotr\appdata\local\temp\tmp3abskl:
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: option --home not recognized
----------------------------------------
Command c:\python\virtualenv\test\Scripts\python.exe -c "import setuptools; __file__='c:\\python\\virtualenv\\test\\src\\requests\\setup.py'; exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" develop --no-deps --home=c:\users\piotr\appdata\local\temp\tmp3abskl failed with error code 1 in c:\python\virtualenv\test\src\requests
Storing complete log in C:\Users\Piotr\AppData\Roaming\pip\pip.log
Mengalami kesalahan ini dengan pip install -t dir -e git+git://github.com/shazow/urllib3.git@f088037#egg=urllib3
juga.
saya juga mengalami kesalahan ini sekarang.
Ini tampaknya terjadi pada paket apa pun jika --target
dan --editable
digabungkan:
pip memanggil setup.py develop --home ...
, tetapi --home
hanya berlaku dengan setup.py install
.
Jadi, pada akhirnya saya menemukan bahwa menggunakan opsi --src
dengan paket yang dapat diedit alih-alih --target
melakukan apa yang saya inginkan.
Mungkin --target
harus memiliki efek yang sama seperti --src
ketika --editable
ditentukan atau dapat menampilkan pengguna dengan pesan kesalahan dan mungkin mengarahkan pengguna ke --src
.
Mungkin --target harus memiliki efek yang sama seperti --src ketika --editable ditentukan
IMO perilaku yang diharapkan akan membuat / memperbarui easy_install.pth di direktori target
.
Saya baru saja mengalami masalah yang sama. Seperti yang disarankan oleh @jezdez Anda dapat mengatasi ini dengan melakukan hal berikut (tanpa menggunakan --editable yaitu):
git+ssh://[email protected]/some-user/some-repo.git#egg=Foo
Saya sendiri melihat masalah serupa di sini:
Cleaning up...
Exception:
Traceback (most recent call last):
File "/efs/dev/bti/pip/1.3.1-build001/install/exec/2.7/lib/python/pip-1.3.1-py2.7.egg/pip/basecommand.py", line 139, in main
status = self.run(options, args)
File "/efs/dev/bti/pip/1.3.1-build001/install/exec/2.7/lib/python/pip-1.3.1-py2.7.egg/pip/commands/install.py", line 291, in run
for item in os.listdir(lib_dir):
OSError: [Errno 2] No such file or directory: '/tmp/tmppjdGHI/lib/python'
baris 290 di pip / commands / install.py adalah:
lib_dir = home_lib(temp_target_dir)
Dari apa yang dapat saya lacak, pip telah membersihkan jalur ini di pip / req.py baris 1194 di mana ia menghapus sumber sementara.
requirement.remove_temporary_source()
Saya dapat melihat meninggalkan pembersihan itu di sana apa adanya tetapi membungkusnya dengan blok yang ada atau coba sehingga pemasangan dapat dilanjutkan. Apakah ada yang melihat itu sebagai masalah?
@tima Saya memiliki masalah yang sama dengan direktori lib. Pip HEAD seharusnya memperbaiki ini tetapi setidaknya di CentOS masalah masih berlanjut. Dalam kasus khusus ini ada direktori lib64 dan bukan lib.
Saya memiliki masalah yang sama saat menggunakan --target
(tetapi bukan --editable
).
Ini pelacakan balikku—
Exception:
Traceback (most recent call last):
File "/Users/beaum/homebrew/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/basecommand.py", line 139, in main
status = self.run(options, args)
File "/Users/beaum/homebrew/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/commands/install.py", line 294, in run
for item in os.listdir(lib_dir):
OSError: [Errno 2] No such file or directory: '/var/folders/00/1hyxr000h01000cxqpysvccm0063vq/T/tmpc_E_Bl/lib/python'
+1,
Mengunduh PyYAML-3.10.tar.gz (241kB): 241kB diunduh Jalankan setup.py egg_info untuk paket pyyaml melewatkan ekstensi Cython 'ext / _yaml.c' (up-to-date) Menginstal paket yang dikumpulkan: krcore, sympy, pyparsing, pyyaml Menjalankan setup.py develop untuk krcore penggunaan: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] atau: -c --help [cmd1 cmd2 ...] atau: -c --help-commands atau: -c cmd --help error: opsi --home tidak dikenali Lengkapi keluaran dari perintah / usr / bin / python -c "import setuptools; __file __ = '/ tmp / krapp / src / krcore / setup.py'; exec (compile (open (__ file __). Read (). Replace ('\ r \ n ',' \ n '), __file__,' exec ')) "develop --no-deps --home = / tmp / tmpvKaRYp: penggunaan: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] atau: -c --help [cmd1 cmd2 ...] atau: -c --help-commands atau: -c cmd --help error: opsi --home tidak dikenali ---------------------------------------- Membersihkan... Perintah / usr / bin / python -c "import setuptools; __file __ = '/ tmp / krapp / src / krcore / setup.py'; exec (kompilasi (buka (__ file __). Read (). Replace ('\ r \ n ',' \ n '), __file__,' exec ')) "develop --no-deps --home = / tmp / tmpvKaRYp gagal dengan kode kesalahan 1 di / tmp / krapp / src / krcore
Saya mendapatkan 'error: opsi --home tidak dikenali' saat menggunakan --target dengan -r (--requirements)
: +1:
Berikut @YorickPeterse dan @jezdez Solusi disebabkan:
error: harus menyediakan home atau prefix / exec-prefix - bukan keduanya
--editable dan --target options tidak bekerja bersama
Saya telah mengalami masalah yang sama ...
Saya mencoba menggunakan pip untuk menginstal paket python di lokasi khusus (bukan virtualenv) dan saya memerlukan salah satunya (yang sedang saya kerjakan) agar dapat diedit.
Ini mungkin terkait dengan https://github.com/pypa/setuptools/issues/392
Dan karena satu perintah pip dapat memicu setup.py develop
(untuk pkg yang dapat diedit) dan setup.py install
(ketergantungan), satu-satunya solusi (sangat jelek) yang dapat saya pikirkan adalah dengan mengeluarkan 2 perintah:
--no-deps
Akan jauh lebih bersih jika tidak perlu mengubah opsi baris perintah pip lainnya apakah --editable
dilewatkan atau tidak.
Jadi saya kira ada dua cara untuk membuatnya bekerja:
--home
ie. memperbaiki https://github.com/pypa/setuptools/issues/392. Mungkin rumit, membaca detail masalah itu?--target
berbeda tergantung apakah memanggil setup.py develop
atau setup.py install
. mungkin lebih sederhana?memiliki detail pip abstract setuptools dan mengimplementasikan
--target
behavior secara berbeda tergantung apakah memanggilsetup.py develop
atausetup.py install
. mungkin lebih sederhana?
Kesulitan terbesar dengan opsi ini adalah pip bekerja untuk mengabstraksi detail sistem build (setuptools) sehingga solusi kasus khusus untuk masalah setuptools bekerja untuk tujuan tersebut.
Pada akhirnya saya berhasil melakukan apa yang saya inginkan, menggunakan --prefix
, dan tanpa menggunakan kustom --install-option
, jadi saya akhirnya dapat menggunakan opsi yang sama apakah saya lulus --editable
atau tidak .
Namun saya harus menyesuaikan tata letak (debian) saya yang ada agar sesuai dengan pip default (paket situs), karena tidak ada opsi pip untuk menentukan tata letak ...
Mungkin fitur yang perlu dipertimbangkan untuk ditambahkan?
@jodohgratis
Ini membutuhkan label --target option
.
dapatkah seseorang membagikan solusi terbaik apa yang menggunakan opsi -e dan -t? Apakah Anda menyarankan untuk menggunakan distutils karena mendukung opsi '--home'?
ada berita?
Saya masih menggunakan --editable
dengan --prefix
(bukan --target
) yang berfungsi untuk saya. Tetapi saya terjebak pada pip <9.0.0 karena perbedaan antara --prefix
dan --target
. detail lebih lanjut di https://github.com/pypa/pip/issues/4243
jika Anda ingin menggunakan opsi --prefix daripada --target Anda harus menyetel PYTHONPATH
(menunjuk ke direktori paket situs yang akan dibuat) dengan benar sebelum Anda dapat memanggil pip -t . --prefix myprefix
. Adakah cara elegan untuk menghindari ini?
Menutup untuk memindahkan sekumpulan masalah terkait ke satu masalah: # 4390.
Saya akan menambahkan bahwa ini adalah masalah bagi pengembang Google Appengine yang perlu menginstal dependensi mereka di direktori di root aplikasi tetapi juga perlu menerapkan dependensi yang dapat diedit di checkout lokal sebagai bagian dari proses QA. Saat berada, editable perlu dihubungkan secara manual yang tidak praktis.
Utas ini telah dikunci secara otomatis karena tidak ada aktivitas baru-baru ini setelah ditutup. Silakan buka masalah baru untuk bug terkait.
Komentar yang paling membantu
Saya akan menambahkan bahwa ini adalah masalah bagi pengembang Google Appengine yang perlu menginstal dependensi mereka di direktori di root aplikasi tetapi juga perlu menerapkan dependensi yang dapat diedit di checkout lokal sebagai bagian dari proses QA. Saat berada, editable perlu dihubungkan secara manual yang tidak praktis.