From mediawiki.org
This page is a translated version of the page Manual:Pywikibot/user-config.py and the translation is 41% complete.
Outdated translations are marked like this.


Bevor du eines der Programme ausführst, musst du eine Datei namens user-config.py in deinen pywikibot-Verzeichnis erstellen. Du erstellst es auf einen von zwei Weisen:

  1. Die Datei manuell erstellen. Es müssen mindestens zwei oder drei Variablen konfiguriert und an der richtigen Stelle platziert werden.
  1. Run the script generate_user_files.py by entering python pwb.py generate_user_files.py in a command shell, which will interactively generate the file in an interactive "wizard" style, and store it in the default configuration location.


Pywikibot sucht nach user-config in den folgenden Orten in dieser Reihenfolge:

  • Specified via the -dir: argument (for example: -dir:/foo/bar)
  • The content of the environment variable PYWIKIBOT_DIR
  • The current directory
  • The directory in which the pwb.py file is
  • The .pywikibot directory in the application data directory (Windows) or home directory (that directory gets automatically created)

(Siehe auch: get_base_dir().)

Below are instructions for manually editing this file.

Open a text editor (e.g. Notepad in Windows) and save the text file as user-config.py in the pywikibot folder.

If your language uses non-ASCII characters, you should use a Unicode-aware editor such as Notepad++ and save your user-config with Unicode encoding without BOM marks. Don't forget to insert

# -*- coding: utf-8 -*-

as the first line.

Add the following lines to user-config.py:

Code Erklärung
family = 'wikipedia'
mylang = 'en'

xx is the code for the language you are working on, for example 'en' is English.[1] Family is the project name.[2]

usernames['wikipedia']['en'] = 'ExampleBot'

Your user-config.py file needs to specify the bot's username.

In this example, the user is working on English Wikipedia, and has created a bot account with the username "ExampleBot". [3]


authenticate['*.wikipedia.org'] = ('<consumer_key>','<consumer_secret>', '<access_key>', '<access_secret>')

This replaces password-based authentication with OAuth, which is more secure (especially for bots with shared ownership). See Pywikibot/OAuth on how to obtain the keys/secrets.


usernames['wikipedia']['de'] = 'BeispielBot'
usernames['wikipedia']['en'] = 'ExampleBot'
usernames['wiktionary']['de'] = 'BeispielBot'

If you are working on more than one Wikimedia project, you can also add several usernames.

(Optional, und selten erforderlich)

console_encoding = 'utf-8'
textfile_encoding = 'unicode_escape'

If this is the encoding used by your system. Always try without first.


sort_ignore_case = True

Some scripts may use this for sorting, e.g. solve_disambiguation.py. Default is False. Capitalized titles will preceed uncapitalized ones if this key is False or omitted, and capitalization will be disregarded by sorting if True.


password_file = "user-password.py"

Define a password file. The lines of the file should be tuples in any of the following formats:

(code, family, username, password)
(family, username, password)
(username, password)

For BotPasswords, refer to Pywikibot/BotPasswords.

user_agent_description = "Description <contact@email.com>"
A free-form string that can be user to describe specific bot/tool, provide contact information, etc.

Speichere nun user-config.py erneut.


EksempelBot auf no.wikipedia

mylang = 'no'
usernames['wikipedia']['no'] = 'EksempelBot'

console_encoding = 'utf-8'
use_api_login = True

ExampleBot auf Commons

mylang = 'commons'
family = 'commons'
usernames['commons']['commons'] = 'ExampleBot'

console_encoding = 'utf-8'
use_api_login = True

ExampleBot auf Wikidata

mylang = 'wikidata'
family = 'wikidata'
usernames['wikidata']['wikidata'] = 'ExampleBot'

console_encoding = 'utf-8'
use_api_login = True

ExampleBot auf Test wiki

mylang = 'test'
family = 'test'
usernames['test']['test'] = 'ExampleBot'

ExampleBot auf Test2 wiki

mylang = 'test2'
family = 'wikipedia'
usernames['wikipedia']['test2'] = 'ExampleBot'

BeispielBot auf de.wikipedia und de.wikibooks, mit de.wikipedia als Hauptwiki

mylang = 'de'
usernames['wikipedia']['de'] = 'BeispielBot'
usernames['wikibooks']['de'] = 'BeispielBot'

console_encoding = 'utf-8'
use_api_login = True

Für Nicht-Wikimedia-Wikis

Siehe auch

  • config.py (the source code of the module that loads and interpretes user-config.py)


  1. If you want to work with more than one language, choose the most common one. You can override this on the command line by using -lang:zh parameter.
  2. Meta uses 'meta' for both language code and wiki family, Commons uses 'commons' for both, and Testwiki uses 'test' for both, the multilingual wikisource uses '-' for the language. You can override this on the command line by using -family:wikibooks.
  3. Note that on Linux/Unix hosts username capitalization matters! While logging in may not be an issue, testing the log in or attempting to use a bot will not use the correct cookie file and may result in anonymous access to the API. This can cause problems for private wikis that do not allow anonymous access or use third party authentication. Default usernames for mediawiki and those pulled via LDAP or other third party authentication schemes will have an uppercase character for the first letter, thus 'user' becomes 'User'.

If you need more help on setting up your Pywikibot visit the #pywikibot IRC channel connect or pywikibot@ mailing list.