"Hata: seçenek --single-version-harici-yönetilen tanınmadı" neyi gösterir?


102

Görünüşe göre, varyasyon paketlerini error: option --single-version-externally-managed not recognizedyüklerken aniden hatayla karşılaşmaya başladım pip install(PyObjC veastropy ) . Bu hatayı daha önce hiç görmedim, ancak şimdi hiçbir şeyin değişmediği travis-ci sürümlerinde de görünüyor.

Bu hata, güncel olmayan bir dağıtım olduğunu mu gösteriyor? Veya yanlış belirlenmiş bir seçenek setup.py? Veya tamamen başka bir şey?

Yanıtlar:


85

Yeni güncelleme:

En son sürümünü yükleyin setuptools. Hala hatayı alıyorsanız, onu da yükleyin wheel.

pip install -U setuptools
pip install -U wheel

Orijinal Cevap / Daha Fazla Ayrıntı:

--single-version-externally-managed Python paketleri için, setuptools modülüne, Yum veya Apt gibi, gerekirse ana bilgisayarın paket yöneticisi tarafından kolayca yönetilebilen bir Python paketi oluşturma talimatı veren bir seçenektir.

Bu mesajı görüyorsanız, kurulum araçlarının veya Python'un eski bir sürümüne sahip olabilirsiniz. Kurulum araçlarının daha yeni bir sürümü olan ve geriye dönük uyumlu olan Distribute'u kullanmayı deneyin. Bu paketler, zaten sahip olmanızı bekleyebilir.

https://pypi.python.org/pypi/distribute

Düzenleme: Bu noktada, dağıtım ana setuptoolsproje ile birleştirildi . Bunun en son sürümünü yüklemeniz yeterlidir setuptools. @Wynemo'nun belirttiği gibi, --eggdağıtım için bir sistem paketi oluşturmayı düşünmediğiniz manuel kurulumlar yapanlar için daha uygun olduğundan, bunun yerine seçeneği kullanmak isteyebilirsiniz .


1
Hangi sürümün göründüğünü ekleyebilir misiniz? Setuptools 0.6 kullanıyorum ve pip daha yeni bir sürümden haberi yok. distributekulağa hoş geliyor, ama onu içe
aktaramıyorum

Yapmıyorsun import distribute. Distribute, bir drop-in değişimidir ve aynı modül adına sahiptir. import setuptoolsbunun için de gereklidir.
Kelketek

O zaman yapılacak şey, her ikisini de yüklediyseniz, kurulum araçlarının dağıtımı geçersiz kılmadığından emin olmaktır. Distribute with pip'i kurmalı ve ardından kurulum araçlarını kaldırmalısınız. Bunun işe yaraması gerektiğini düşünüyorum.
Kelketek

17
Eklenmelidir: Artık dağıtmayı kullanmayın. Distribute, kurulum araçları projesine geri birleştirildi, bu yüzden artık setuptoolshepsini yönetecek tek bir tane var .
Iguananaut

1
@johntex, bu yanıt bir yıldan daha uzun bir süre önce, dağıtım ve kurulum araçları henüz birleşmediğinde (ya da olsaydı, bunu duymamıştım) yapıldı. Şimdi güncelledim.
Kelketek

136

--eggSeçenek ekle

pip install --egg SCons

pip1.4.1 sürümünü kullanıyorum


10
Gerçekten yardımcı olan tek çözüm buydu. En son pip ve kurulum araçları zaten yüklenmişti, yine de bu hatadan nefret ediyorum.
Michael

Pyenv ile bu sorunu yaşadım ve bu sorunu çözdü.
glaucon

13
Birisi bu seçeneğin ne anlama geldiğini ve neden işe yaradığını ayrıntılı olarak açıklayabilir mi?
kawing-chiu

4
Bu benim için işe yarasa da, şu hatayı da aldım: "DEPRECATION: --egg kullanımdan kaldırıldı ve gelecekte kaldırılacak. Bu bayrak pip'in büyük parçalarıyla birbirini dışlar ve aslında onu kullanmak pip'in yükleme işlemi."
natersoz

2
no such option: --eggpip 18.1
gdw2'de

45

Kurulum wheel bu sorunu son zamanlarda çözdü pip(8.1.2 kullandım):

pip install wheel

İsterseniz düzenlemeye geri dönebilirsiniz, sorun değil. Tam sürümünü pipve wheelnerede düzeltildiğini biliyorsanız, yeniden kırılma ihtimaline karşı bundan bahsetmeye değer. Ayrıca cevap zaten neler olup bittiğini açıklamıyor.
anatoly techtonik

@Sparrowt'un bu artı yanıtı sorunumu çözdü
David Poxon

7

Kurulum araçlarını şu şekilde yükseltmeyi deneyin:

pip install --upgrade setuptools


5

Bu sorunu yaşıyordum. Pip önbelleğimdeki dosya izinleriyle ilgili bir sorun olduğu ortaya çıktı.

Pip çıktınızın en başında şöyle bir mesaj görürseniz:

The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

aynı problemi yaşayabilirsiniz. Ya pip önbelleğinizde uygun dosya izinlerine sahip olduğunuzdan emin olarak (buna benzer bir şey chown -R $(whoami) /home/ubuntu/.cache/pip) ya da bir UNIX kullanıyorsanız, XDG_CACHE_HOMEenv var ile pip önbellek konumunu sahip olduğunuz bir klasöre ayarlayabilirsiniz .


Şaşırtıcı bir şekilde, benim için de çalıştı ( sudopaketi yüklemek için kullanırsanız , -Hbayrağı eklediğinizden emin olun )! Önbellek ile komut seçeneği hatası arasındaki bağlantının ne olduğunu gerçekten görmüyorum, ama boşver.
Delgan

1

Yukarıdaki çözümleri denedim. Ancak sorunu yalnızca şunları yapana kadar çözebilirim:

sudo pip3 install -U pip (python3 için)


0

Macbook'umda da bir python paketini yükseltmeye çalıştığımda bu sorunu yaşıyorum. OS X'te pip sürümünü kontrol ediyorum, çok eski: 1.1. Pip'i 1.5.6'ya yükseltmek için takip cmd kullanıyorum

easy_install -U pip

Sonra bu hata düzeltildi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.