2016-03-20 14 views
0

kullanılacak ve yazar bana bir hata verirdönüştürme Python 3 kütüphaneler Python 3'te kodlanmış bir öğretici takip ediyorum 2.7

from urllib import parse 

kullanır.

Google'ı kullanmayı ve kitaplığı okumaya çalıştım ancak eşdeğerini bulamıyor gibiyim. Proje için tüm kodum 2.7’de. Bu yüzden sadece bu ufaklık için 3’ten fazla hareket etmemeyi tercih ederim.

Yardımlarınız için şimdiden teşekkür ederiz.

+0

3to2 adlı bir program var. –

+0

Merhaba, evet şu anda 3to2'yi nasıl kullanacağımla ilgili öğreticilere bakıyorum ama birkaç sorum var. Bunu bir kütüphane olarak Pycharm'a yükler miyim? ve 3to2 kodunu düzeltmede otomatik olarak çalışıyor mu? – Lewis20

+1

Hayır; Bunu komut satırında kullanırsın. Her neyse, eğer python için oldukça yeniyseniz ve bu kendi projenizse, Python 2'yi tamamen atlamanızı ve şimdi geçiş yapmanızı öneririm. Yani, 1000 satır koddan bahsediyorsak; üretimde 10000 veya 100000 değil –

cevap

0

Urllib python 3'te yeniden yapılandırılmıştır. Python 2'de urlparse nolu neydi, şimdi urllib.parse (python 3'te). Yani sadece urlparse kullanın. Bunu bile yapabilirsiniz: import urlparse as parse ve kodun geri kalanı aynı olmalıdır.

0

Python 3 uyumluluğunuzu kaybetmeden Python 2 kodunuzu uyumlu hale getirin. Sen six gibi bir kütüphane kullanabilirsiniz, ancak sadece bu tek ithalat için bu yeterli olabilir: Gerçi "görünmez" uyumluluk sorunları olabilir

try: 
    from urllib import parse 
except ImportError: 
    import urlparse as parse 

Not. Örneğin, Python 3'teki standart bölümleme, her zaman iki tam sayı arasında bile yüzer işaretleme bölümüdür, Pyhton 2'de ise bu değildir. URL ayrıştırma ile ilgilenen koduyla olası değildir Böylece bir yandan, siz de Python 3 kod üstündeki

from __future__ import division 

eklemek isteyebilir. Genellikle


, ben gerektiğinde Python 2 uyumlu yapma, yazma ve Python 3 kodunu kullanarak tavsiye değil (yani 3to2 veya 2to3 araçları kullanarak değil Python 2 onu dönüştürerek, ama mesela altı kullanmak veya bazı denemeler hariç ithalatlar).

Bu şekilde, bu kod zaten Py3 hazır, ancak yine de Py2 ile çalışır.