2016-04-05 4 views
1

Verwendung von xlwings 0.7.1 UDF unter Windows in 64-Bit virtuell env python 2.7.6. Ich sehe jetzt, dass anstelle der vollständigen Pfad zum Modul, Modulnamen benötigt. Es schlägt jedoch automatisch fehl, UDFs zu importieren, wenn der Modulname den Präfix Paketnamen hat. ZB:Excel xlwings_udfs Modul ist leer

PYTHONPATH = ThisWorkbook.Path & ";C:\pathTo\Pydev\myproj\src" 
UDF_MODULES = "pkg.myudfs" 

Wenn ich die Paketnamen 'pkg' von UDF_MODULES zu PYTHONPATH bewegt, dann scheitert es bei der Einfuhr innerhalb myudfs.py (wie 'Import pkg.module2'). getroffen Nach & Versuch, Ich reparierte sie von mehreren Quellordner hinzufügen:

PYTHONPATH = ThisWorkbook.Path & ";C:\pathTo\Pydev\myproj\src\pkg;C:\pathTo\Pydev\myproj\src" 

Bin ich, dies zu tun zu erwarten? Kann ich nicht einfach UDF_MODULES auf den src-Basisordner verweisen und einen qualifizierten Modulnamen wie "pgk.myudfs" angeben?

Antwort

1

Sie machen es gerade richtig (v0.7.1). Ich habe jedoch eine issue auf GitHub geöffnet, damit wir dies in einer zukünftigen Version erleichtern können.

+0

danke. Übrigens, ein Kommentar zur Pip-Installation. Bei der Installation mit ** virtual env ** scheint es, dass die xlwings-DLLs nicht automatisch in das Scripts-Verzeichnis kopiert werden. Andere Dateien wie "xlwings.exe" und "xlwings-script.py" werden jedoch ordnungsgemäß in den Scripts-Ordner kopiert. Ist das Absicht? Um es funktionieren zu lassen, habe ich sie manuell aus dem Ei-Ordner kopiert. Bitte lassen Sie mich wissen, wenn es nicht benötigt wird. – Jorge

+0

Das Design ist, dass die DLLs neben dem virtualenv Python Interpreter kopiert werden ... Bitte öffnen Sie ein Problem auf GitHub, wenn Sie Probleme mit virtualenv haben. –