Desteklenmeyen bir Python sürümü kullanıldığında pip'in toplanmasını ve paket yüklemeyi denemesini önlemek için setup.py
dosyasına ne yazabiliriz? Örneğin magicstack
içinPaketin eski Python sürümlerine yüklenmesini önleme
hazinesi sınıflandırıcı ile listelenen bir projedir:
yüzdenpip --version
eğer aşağıdaki davranış 2.7 python bağlıdır bekliyoruz
Programming Language :: Python :: 3 :: Only
:
$ pip install magicstack
Collecting magicstack
Could not find a version that satisfies the requirement magicstack (from versions:)
No matching distribution found for magicstack
Ama gerçek davranışlar olmasıdır pip bir sürüm toplar, indirir, yüklemeye çalışır ve başarısız olur. Örneğin Python 3'e özgü diğer Python3 sürümleri, curio
, setup.py
, Python 3'e özgü bir şey kullanmadığından, yalnızca bazı Python 3 sözdizimi kullanıldığında içe aktarma zamanında başarısız olur. Ve eminim ki, Tamam'ı yükleyen, Tamam'ı yükleyen ve belki sadece çalışma zamanında başarısız olan paketler var!
Desteklenen Python sürümlerinizi, piplerin saygı gösterecek şekilde belirtmek için doğru yöntem nedir? Yalnızca bir teker dosyası yükleyerek ve bir .tar.gz dağıtımını yüklemeyi reddeden bir geçici çözüm buldum, ancak doğru düzeltmeyi öğrenmek isterim.
Düzenleme: nasıl pipdeğil biliyor Python/os/mimari eşleşen değilse tekerlek dağılımını indirmek için? Sadece .whl filename convention mu kullanıyor yoksa sahnelerin gerisinde olduğundan daha karmaşık bir şey var mı? Bir şekilde meta verisinin pip verisini .tar.gz yüklemeleri ile doğru şeyi yapmasını sağlamak için verebilir miyiz?
Bunun _right_ yanıtı olduğunu bilmiyorum ... ama eğer 'setup.py' python2.x'de başarısız olmasından dolayı' magicstack' python3 ise, o zaman bu işin yapılması için mümkün olan tek bir yol gibi görünüyor. 'setup.py', uygun olmayan python sürümlerinde başarısız olmaya zorlar ... – mgilson
Hacky. Pip desteklenmeyen bir Python yorumlayıcısına bağlıysa, 'setup.py' çalıştırılarak bir yükleme girişiminde bulunulsun, paketin toplanmasını veya indirilmesini istemiyorum. – wim
Google, bazı [önceki] (http://stackoverflow.com/questions/13924931/setup-py-restrict-the-allowable-version-of-the-python-interpreter) [soruları] (http: // stackoverflow) .com/questions/13385337/distribution-distutils-modify-python-version) 'setup.py' komutunun Python sürümüne sahip olduğunu söyleyen cevaplarla. – user2357112