Dua opsi di setup.py developdan installmembingungkan saya. Menurut situs ini , menggunakan developmembuat tautan khusus ke direktori paket situs.
Orang-orang menyarankan agar saya menggunakan python setup.py installuntuk instalasi baru dan python setup.py developsetelah ada perubahan pada file setup.
Adakah yang bisa menjelaskan penggunaan perintah ini?
python setup.py install digunakan untuk menginstal paket (biasanya pihak ketiga) yang Anda sendiri tidak akan kembangkan / ubah / debug
Untuk barang-barang Anda sendiri, Anda ingin menginstal paket Anda terlebih dahulu dan kemudian dapat sering mengedit kode tanpa harus menginstal ulang paket setiap kali - dan itulah yang python setup.py developdilakukan: itu menginstal paket (biasanya hanya folder sumber) dengan cara yang memungkinkan Anda mengedit kode dengan mudah setelah diinstal ke lingkungan (virtual), dan segera lakukan perubahan.
Perhatikan bahwa sangat disarankan untuk menggunakan pip install .(menginstal) dan pip install -e .(menginstal pengembang) untuk menginstal paket, karena memohon setup.pysecara langsung akan melakukan hal-hal yang salah untuk banyak dependensi, seperti menarik prerelease dan versi paket yang tidak kompatibel, atau membuat paket sulit untuk dihapus dengan pip.
Erik benar. Yang juga berguna untuk diketahui adalah yang setup.py develophadir dengan --uninstallopsi kapan Anda selesai meretas.
philadams
5
Pemikiran terakhir di sini adalah bahwa opsi lain setup.py developketika meretas paket python adalah menggunakan modifikasi jalur "sederhana (tetapi eksplisit) untuk menyelesaikan paket dengan benar" ulang Kenneth Reitz
filad
4
Saya mengalami masalah menggunakan python setup.py developmencoba mengatur Ceilometer untuk pengembangan lokal. Saya akhirnya menggunakan pip install -e PATH(dalam virtualenv) untuk menghindari masalah yang muncul melaluieasy_install .
Joe D'Andrea
1
tidak yakin apakah ini penting, tetapi jika saya menggunakan python 3 dll, apakah kita harus menjalankannya secara python setup.py developberbeda?
Charlie Parker
1
Ini berfungsi dengan python3, tetapi jangan lupa untuk menghapus instalasi pip saat ini yang mungkin Anda miliki, karena mereka akan berbenturan bersama (itu terjadi pada saya saat ini).
Léo Germond
124
Dari dokumentasi . Tidak developakan menginstal paket tetapi itu akan membuat .egg-linkdalam direktori penempatan kembali ke direktori kode sumber proyek.
Jadi itu seperti menginstal tetapi alih-alih menyalin ke site-packagessana menambahkan tautan simbolik ( .egg-linkbertindak sebagai tautan simbolik multiplatform).
Dengan begitu Anda dapat mengedit kode sumber dan melihat perubahan secara langsung tanpa harus menginstal ulang setiap kali Anda membuat sedikit perubahan. Ini berguna ketika Anda adalah pengembang proyek itu maka nama develop. Jika Anda baru saja menginstal paket orang lain, Anda harus menggunakannyainstall
IIUC Anda seharusnya tidak pernah setup.py developdi sistem Anda, ini hanya masuk akal dalam virtualenv.
dividebyzero
2
@dividebyzero Maksud Anda harus selalu digunakan python setup.py develop --user, jika saya mengerti dengan benar? Selain itu, bisakah Anda memberi tahu saya di mana paket diinstal dengan menggunakan python setup.py develop --user? Terima kasih!
ROBOT AI
2
Saya pikir --userakan menginstal dalam direktori di akun rumah Anda, dan tidak akan mempengaruhi pengguna lain di sistem Anda. The developakan membuat link ke direktori source proyek Anda bukan benar-benar menyalin segala sesuatu. develop --userharus OK, dan developdalam virtualenv juga. Hanya developke sistem aktual yang aneh, karena Anda mungkin memiliki pengguna lain menggunakan sesuatu yang menunjuk ke proyek dalam salinan pribadi Anda dari kode sumber proyek.
dividebyzero
4
Namun banyak (kebanyakan?) Orang tidak menjalankan sistem multi-pengguna
patstew
1
@boatcoder, Mac, dan Linux (dan Windows) mungkin merupakan sistem yang mampu multi-pengguna , tetapi kemungkinan besar pengembang adalah satu-satunya akun pengguna (nyata) dari desktop-nya, dan saya percaya itulah yang dimaksud dengan warna baru.
setup.py develop
hadir dengan--uninstall
opsi kapan Anda selesai meretas.setup.py develop
ketika meretas paket python adalah menggunakan modifikasi jalur "sederhana (tetapi eksplisit) untuk menyelesaikan paket dengan benar" ulang Kenneth Reitzpython setup.py develop
mencoba mengatur Ceilometer untuk pengembangan lokal. Saya akhirnya menggunakanpip install -e PATH
(dalam virtualenv) untuk menghindari masalah yang muncul melaluieasy_install
.python setup.py develop
berbeda?Dari dokumentasi . Tidak
develop
akan menginstal paket tetapi itu akan membuat.egg-link
dalam direktori penempatan kembali ke direktori kode sumber proyek.Jadi itu seperti menginstal tetapi alih-alih menyalin ke
site-packages
sana menambahkan tautan simbolik (.egg-link
bertindak sebagai tautan simbolik multiplatform).Dengan begitu Anda dapat mengedit kode sumber dan melihat perubahan secara langsung tanpa harus menginstal ulang setiap kali Anda membuat sedikit perubahan. Ini berguna ketika Anda adalah pengembang proyek itu maka nama
develop
. Jika Anda baru saja menginstal paket orang lain, Anda harus menggunakannyainstall
sumber
Hal lain yang bermanfaat bagi orang saat menggunakan
develop
metode ini adalah--user
opsi untuk menginstal tanpa sudo. Ex:dari pada
sumber
setup.py develop
di sistem Anda, ini hanya masuk akal dalam virtualenv.python setup.py develop --user
, jika saya mengerti dengan benar? Selain itu, bisakah Anda memberi tahu saya di mana paket diinstal dengan menggunakanpython setup.py develop --user
? Terima kasih!--user
akan menginstal dalam direktori di akun rumah Anda, dan tidak akan mempengaruhi pengguna lain di sistem Anda. Thedevelop
akan membuat link ke direktori source proyek Anda bukan benar-benar menyalin segala sesuatu.develop --user
harus OK, dandevelop
dalam virtualenv juga. Hanyadevelop
ke sistem aktual yang aneh, karena Anda mungkin memiliki pengguna lain menggunakan sesuatu yang menunjuk ke proyek dalam salinan pribadi Anda dari kode sumber proyek.