10

I've been trying to learn Twill Scripting on Python and I am using Python 3.4 and Twill 1.8.0. Been reading some posts here and I found it interesting to study. But, I do have a problem installing Twill. I just knew that PRINT in Python is now a function so meaning it needs parenthesis and that's where my problem starts. As I look through the codes on Twill 1.8.0, I think it isn't oriented with the change of using PRINT yet. Strings are not enclosed with parenthesis so I was thinking maybe there is a new patch or version of Twill that adapts the changes of Python, is there any? or is there anything I can do about this aside from manually editing Twill files?

Your response is highly appreciated.

GM-Xile GM-Xile
  • 321
  • 1
  • 8
  • 21
  • 2
    I think it's a legitimate question whether Twill is available for Python3. Upvoted to cancel out the malicious downvote. – Canuck Dec 09 '15 at 20:29

4 Answers4

3

I just found the answer. Thanks for viewing this question and probably for that downvote (SAD FACE).. So, the solution that I found was to use the 2to3 Script Tool found in Python Folder. Basically, it refactors Python 2 codes to Python 3 codes.

GM-Xile GM-Xile
  • 321
  • 1
  • 8
  • 21
  • I tried that too and could successfully install Twill 1.8.0. But when I try to `from twill.commands import *`, I get a `ModuleNotFoundError: No module named 'lxml'`. I use Python 3.6. How did you deal with that? – stefanbschneider Aug 02 '17 at 11:13
  • Actually, I could resolve the `ModuleNotFoundError` by installing `lxml` and `requests` with `pip install`. But now I get a `SyntaxError` when I try to import because somewhere `False = 0`.... – stefanbschneider Aug 02 '17 at 11:18
3

GMs answer only partly solved the problem for me (using Python 3.6 on Windows). Downloading Twill 1.8.0 and converting it with 2to3 was only the first step.

Afterwards, I had to install missing packages:

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

Furthermore, I had to fix two files in Python36/lib/site-packages/twill/other_packages/: In subprocess.py, I removed the section with False = 0 at line 392 and changed if 0: to if 1: in line 353 to avoid using _subprocess. Finally, in pyparsing.py, I replaced .lowercase with .lower() and .uppercase with .upper().

stefanbschneider
  • 5,460
  • 8
  • 50
  • 88
2

Well, Twill 2.0 is released with support of the modern python revisions

Twill 2.0 Release Info Page

Well, Twill 3 is also here - Twill 3

Gleb S
  • 152
  • 2
  • 13
  • 1
    Quick update: Current versions are now Twill 2.0.3 (Python 2 + 3) and Twill 3.0 (Python 3 only). – Cito Feb 25 '21 at 17:40
1

Have you tried to install twill3?

pip install twill3
Urban P.
  • 119
  • 1
  • 9