2014-06-05 27 views
6

Python'da Twill Scripting'i öğrenmeye çalışıyorum ve Python 3.4 ve Twill 1.8.0 kullanıyorum. Burada bazı yazılar okudum ve çalışmayı ilginç buldum. Ancak, Twill'i yüklemekle ilgili bir sorunum var. Python'da şimdi PRINT'un artık bir işlev olduğunu biliyordum, bu yüzden paranteze ihtiyaç duyuyor ve sorunum burada başlıyor. Twill 1.8.0'daki kodları incelediğimde, BASKI kullanmanın henüz değişmediğini düşünüyorum. Dizeler parantez içine alınmaz, bu yüzden belki de Python değişikliklerini uyarlayan yeni bir yama ya da Twill sürümü olduğunu düşünmekteyim, var mı? veya Twill dosyalarını el ile düzenlemekten başka yapabileceğim bir şey var mı?Yeni/güncellenmiş bir Twill var mı?

Yanıtınız çok beğeni topluyor.

+2

Sanırım Python3 için Twill'in uygun olup olmadığı meşru bir soru. Kötü amaçlı düşürmeyi iptal etmek için aşağı çekildi. – Canuck

cevap

3

Sadece cevabı buldum. Bu soruyu incelediğiniz için ve büyük olasılıkla (SAD FACE) downvote için teşekkürler. Bu yüzden, bulduğum çözüm, Python Klasöründe bulunan 2to3 Komut Dosyası Aracını kullanmaktı. Temel olarak, Python 2 kodlarını Python 3 kodlarına dönüştürür.

+0

Bunu denedim ve Twill 1.8.0'ı başarıyla yükleyebilirim. Ama 'twill.com 'dan ithalat yapmayı denediğimde *, bir' ModuleNotFoundError': 'lxml' adlı modül yok. Python 3.6 kullanıyorum. Bununla nasıl başa çıktın? – CGFoX

+0

Aslında 'ModuleNotFoundError'' 'lxml'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' by''I'I'YI'YI yükleyerek çözebilirdim Ama şimdi bir yere 'SyntaxError 'alıyorum çünkü bir yere' False = 0' ... – CGFoX

1

GM'ler sadece benim için sorunu çözdüler (Windows üzerinde Python 3.6 kullanarak). Twill 1.8.0 indiriliyor ve 2to3 ile dönüştürmek sadece ilk adımdı.

Sonrasında eksik paketleri yüklemek zorunda: Ayrıca

pip install lxml 
pip install requests 
pip install pypiwin32 
pip install cssselect 

, G/lib/site paketleri/dimi/other_packages/Python36 içinde iki dosya düzeltmek zorunda kaldı: subprocess.py, ben bölümü kaldırıldı False = 0 ile 392 satırında ve _subprocess'u kullanmaktan kaçınmak için hat 353'te if 0: ila if 1: değiştirilmiştir. Son olarak, pyparsing.py, .lowercase'u .lower() ve .uppercase ile .upper() ile değiştirdim.