Manual:Pywikibot/Windows

From Linux Web Expert

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Python in the PATH

To make it easier to run Python, the executable needs to be in your PATH.

To check Python has been installed correctly open a CMD.EXE and run:

  C:\> python --version

If it does not find python, reinstall Python and enable the option to put python.exe in your PATH (environment variables).

Create a shortcut

How to make a quick shortcut to run commands (Windows users):

If you're installing Pywikibot in a folder such as "My Documents" it may be troublesome to repeatedly use the "chdir" command to go into the folder to run the bots.

On Windows you can create a shortcut which will open the command box which you can use to run bots easily. Just follow these steps to create one:

  1. Right click the folder pywikibot is installed in.
  2. Click "Create shortcut". A new shortcut icon with the arrow key will be created.
  3. Right click on the new shortcut, and click properties.
  4. In the properties window, in the target box type in cmd.exe.
  5. In the "start in" box enter the full address of pywikibot.
  6. Click "OK".
  7. Click the shortcut and the cmd.exe opens up with the full path listed.
    If you press F5 to refresh the window (or re-open the shortcut's properties), you will notice that the shortcut icon has changed.

Set up Unicode

The Windows shell (cmd.exe) is less than perfect when it comes to Unicode support. Because Pywikibot is used widely on non-English MediaWiki sites, we support full Unicode output. If you need Unicode support for the language you work on, the best solution is to use ConEmu Windows console instead of the native console (i.e. cmd.exe).

However, if you decide to stick with native console you need to change the font setting in cmd.exe before this works - or else you get a lot of question marks!

Alternatively, Pywikibot also supports transliteration - for instance, Вики is transliterated to Viki on Western European systems. This also works without changing the font.

Because it is impossible to determine the font used, we ask that you explicitly define which option you want to use. If you do not define this, you will get the following warning:

WARNING: Running on Windows and transliteration_target is not set.
Please see https://www.mediawiki.org/wiki/Manual:Pywikibot/Windows

Full unicode output (suggested)

To get full unicode output, you need to change the font used by cmd.exe and add a line to user-config.py.

Changing the font
  1. Start cmd.exe or any pywikibot script
  2. Click on the icon in the top left corner ("C:\") or right-click on the title bar
  3. Go to 'Properties'
  4. Go to the 'Font' tab
  5. Select any font that has the TT-logo in front - on Windows XP, this is Lucida Console; on newer versions you can also choose Consolas.
  6. Click 'OK'
  7. Choose 'Save settings for all screens with the same title'

Your cmd.exe now is able to output full unicode!

Changing user-config.py

To user-config.py, add the following line:

transliteration_target = None
Blocks in output

Because the font is unable to display all glyphs, you will occasionally see characters like this: ☐. However, you can still copy the text to visit the page on a wiki by copy-pasting the characters.

If you'd rather have transliterated characters, please read on to the following section.

Transliteration support

If you would like to have transliterated characters instead, you can add the following line to user-config.py:

transliteration_target = console_encoding

or, if you would like to transliterate back to only ascii characters,

transliteration_target = 'ascii'

You can use any standard python encoding for this.

However, the output now is 'Viki' instead of 'Вики'. This means you cannot copy-paste the page title anymore: ru:Viki is *not* ru:Вики!


<translate> If you need more help on setting up your Pywikibot visit the {{<tvar name="1">irc|pywikibot</tvar>|#pywikibot IRC channel}} or [[<tvar name="2">mail:pywikibot</tvar>|pywikibot@ mailing list]].</translate>