import bcrypt scheitert unter Windows 7 Enterprise

Probleme bei der Installation?
Antworten
bassbacke
User
Beiträge: 5
Registriert: Dienstag 11. September 2018, 15:27
Kontaktdaten:

Sorry, ich denke es nicht mal ein reines Python Problem, aber vielleicht ist das ja doch schon mal jemand untergekommen.

Ich habe Ende letzten Jahres Python 3.6.3 auf einen virtuellen Windows 7 Enterprise Client installiert zusammen mit netmiko, welches bcrypt enthält.
Alles lief prima, dann habe ich auf 3.6.5 upgedated, immer noch alles gut.

Als nun 3.7.0 rauskam, habe ich 3.6.5 deinstalliert und 3.7.0 "from scratch" installiert und netmiko, doch bei einem "import bcrypt" gab es eine Fehlermeldung.
Ich habe dann 3.7.0 wieder komplett deinstalliert und 3.6.5 wieder installiert mit dem gleichen Fehler. Auf meinem privaten Client daheim funktioniert alles.
Ich gehe davon aus der Client selbst wurde von den Admins der Firma verändert (z. B. durch Policies) und daher läuft bcrypt (eine dynamisch Bibliothek) nicht mehr.

M:\>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import bcrypt
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\username\AppData\Local\Programs\Python\Python37\lib\site-packages\bcrypt\__init__.py", line 25, in <module>
from bcrypt import _bcrypt
ImportError: dynamic module does not define module export function (PyInit__bcrypt)
>>>

Im Verzeichnis sind die notwendigen Dateien offenbar vorhanden:

M:\>dir C:\Users\username\AppData\Local\Programs\Python\Python37\lib\site-packages\bcrypt
Volume in drive C has no label.
Volume Serial Number is xxxx-xxxx

Directory of C:\Users\username\AppData\Local\Programs\Python\Python37\lib\site-packages\bcrypt

2018-09-04 15:10 <DIR> .
2018-09-04 15:10 <DIR> ..
2018-09-04 15:10 28.672 _bcrypt.cp37-win_amd64.pyd
2018-09-04 15:10 1.296 __about__.py
2018-09-04 15:10 5.467 __init__.py
2018-09-04 15:10 <DIR> __pycache__
3 File(s) 35.435 bytes

Hat jemand eine Idee, wo man da was hebeln kann bzw. woran das ligen könnte?
bassbacke
User
Beiträge: 5
Registriert: Dienstag 11. September 2018, 15:27
Kontaktdaten:

Schein ein generelles Problem mit .pyd (DLL) Dateien zu sein. Das hier geht auch nicht:

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> from cryptography.hazmat.bindings._constant_time import lib

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ImportError: dynamic module does not define module export function (PyInit__constant_time)

>>>
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Passen die DLLs? Sind das 64 Bit? Was sagt DLL-Explorer ueber die? Was sagt dumpbin?
bassbacke
User
Beiträge: 5
Registriert: Dienstag 11. September 2018, 15:27
Kontaktdaten:

Ja, es ist die 64-bit Version, hatte ich mit "pip" installiert:

Wie man weiter oben sehen kann:
2018-09-04 15:10 28.672 _bcrypt.cp37-win_amd64.pyd

Die identische Datei ist auch auf meinen PC daheim, wo das problemlos funktioniert.

Andere Module wie "openpyxl" laufen problemlos, die verwenden aber auch keine .pyd Datei.

Verwendet sonst noch jemand Python auf einem virtuellen Firmen PC?
bassbacke
User
Beiträge: 5
Registriert: Dienstag 11. September 2018, 15:27
Kontaktdaten:

Hier mal eine DEBUG session (-v -v -v):

# trying C:\Users\username\AppData\Local\Programs\Python\Python37\lib\site-packages\bcrypt\_bcrypt.cp37-win_amd64.pyd
Traceback (most recent call last):
File "b.py", line 1, in <module>
import bcrypt
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\ofqs8nq\AppData\Local\Programs\Python\Python37\lib\site-packages\bcrypt\__init__.py", line 25, in <module>
from bcrypt import _bcrypt
File "<frozen importlib._bootstrap>", line 1035, in _handle_fromlist
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 670, in _load_unlocked
File "<frozen importlib._bootstrap>", line 583, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 1043, in create_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: dynamic module does not define module export function (PyInit__bcrypt)

Leider keine sehr spezifische Fehlermeldung.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist ja in der Summe nix anderes. Ich habe chriebenchrieben, was man anders machen kann. Aber das ist kein normales Problem, das hat zutiefst etwas mit eurer Infrastruktur zu tun. Da solltest du mit den admins reden & dem gemeinsam auf die Spur kommen.
bassbacke
User
Beiträge: 5
Registriert: Dienstag 11. September 2018, 15:27
Kontaktdaten:

Die Lösung war alles noch mal zu deinstallieren (inclusive Löschen der durch Python erzeugten Verzeichnisse) und dann Neuinstallation von Python mit Admin-Rechten (das alles hatte ich vorher schon so gemacht) und dann (neu!) CMD mit Admin-Rechten starten um pip zu aktualisieren und dann per pip die Module zu installieren (eben mit Admin-Rechten). Danach lief der Kram wieder auf Anbieb.

Admin-Rechte meint in diesem Kontext "Run with Administrative Privileges (Audited)".
Antworten