python 3

Ansible: The Python 2 bindings for rpm are needed for this module

Ansible logó
Probléma: fatal: [127.0.0.1]: FAILED! => {"changed": false, "msg": "The Python 2 bindings for rpm are needed for this module. If you require Python 3 support use the `dnf` Ansible module instead.. The Python 2 yum module is needed for this module. If you require Python 3 support use the `dnf` Ansible module instead."}

A 2.8-as Ansible alapértelmezetten a Python 3-as verziójával próbál futni (mivel ugye a 2.x támogatása hamarosan véget ér). Azonban a 3-as Python verzióhoz nem érhető el a yum modul, a javasolt dnf modul pedig nem használható CentOS 7-en mivel ott még yum van.

Py2exe / PyInstaller: NameError: name 'exit' is not defined

Python logó
Probléma: Py2exe vagy PyInstaller alkalmazással próbálsz a Python kódodból hordozható, Windows alatt futtatható binárist fordítani. A fordítás sikeres, de mikor a programod az exit() függvényt hívja, a NameError: name 'exit' is not defined hibát kapod.
Megoldás: A sys modulból használd az exit függvényt.

import sys
sys.exit(0)

Python – pymssql throws ImportError: No module named '_mssql'

Python logó
Probléma: A pyinstallerrel fordított Windows bináris a következő hibával száll el:

> test.exe
Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import pymssql
  File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 573, in load_module
    module = loader.load_module(fullname)
  File "_mssql.pxd", line 10, in init pymssql (pymssql.c:12429)
ImportError: No module named '_mssql'
Failed to execute script test

c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory

Probléma: A python3-bcrypt csomag telepítése a következő hibaüzenettel meghiúsul:

c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory
   #include <ffi.h>
               ^
  compilation terminated.

Python virtualenv: Python 2 kikényszerítése

Probléma: A rendszereden a Python 3 az alapértelmezett, ám neked Python 2-es virtualenv környezetre van szükséged.
Megoldás: A virtualenv parancshoz használd a -p python2 kapcsolót: virtualenv -p python2 venv