Einbetten von Pythonfehler Import nach Dateinamen wird nicht unterstützt

Ich versuche, Python in meine Anwendung einzubetten und bin schon früh festgeblieben.

Ich bin einbetten python in meine C ++ – Anwendung und mit dem Code in diesem Tutorial gefunden: http://docs.python.org/2/extending/embedding.html#pure-embedding

Meine Bewerbung passt vollständig und kompiliert erfolgreich keine Fehler. Beim Ausführen der Anwendung pModule = PyImport_Import(pName); Line fehlschlägt zurückgeben 0 bedeutet, ich bekomme Fehlerausgabe von PyErr_Print () von

 Failed to load "C:\Users\workspace\dpllib\pyscript.py" ImportError: Import by filename is not supported. 

Die Anwendung wird mit den Befehlen C:\Users\workspace\ndnlib\pyscript.py multiply 50 150

2 Solutions collect form web for “Einbetten von Pythonfehler Import nach Dateinamen wird nicht unterstützt”

Ich kann nicht sicher sein, aber ich denke, dass seit pName auf argv [1] gesetzt ist und du den vollständigen Pfad benutzt hast, um das Skript aufzurufen, dann ist argv [1] der vollständige Pfad. Dies bedeutet, dass der Code versuchen würde, "C: \ Users \ workspace \ dpllib \ pyscript.py" zu importieren, welches python nicht kann (es kann nur "pyscript" importieren).

Versuchen Sie, das Skript auszuführen, indem Sie einfach "pyscript.py" aus dem Verzeichnis eingeben und sehen, ob der Fehler auf "Fehler beim Laden" pyscript.py "'wechselt. Wenn es tut, dann musst du es reparieren, also importiert es nicht nur argv [1] und modifiziert die Zeichenfolge, um einen Modulnamen anstelle eines Dateinamens zu erhalten.

Es ist einfacher, wenn Sie Ihre Datei als Modul erstellen.

Zum Beispiel,

Schaffe dies:

<project>/MyModule/__init__.py

Dann führen Sie Ihre Datei <project>/script.py

 dyn_module_name = (... get module name 'MyModule' from console arguments ...) my_dynamic_module = __import__(dyn_module_name) 

Da es ein Modul wäre, wird es geladen, während dein scripy.py Ausführung

  • Installieren von PySide - OSX
  • Große POST-Daten sind bei der Verwendung von Django / PyISAPIe / IIS beschädigt
  • Effizientes Update der SQLite-Tabelle mit vielen Datensätzen
  • SWIG_SHARED_PTR Makro mit vorbereiteter Klasse
  • Willkürlich große ganze Zahlen in C #
  • Ich kann beim Öffnen eines Objekts nicht __dealloc__ aufgerufen werden
  • Wie installiere ich das pywin32 Modul in Windows 7?
  • Boost-Python-Container, Iterator und Item-Lebensdauer
  • Mit VerdrahtungPi2-Python (Nicht-Wurzel) Segmentierung Fehler Fang für GPIO
  • .NET Regex Unerkanntes Gruppierungskonstrukt
  • Ist das möglich, einen Python-Code aus C # durch Eingabeaufforderung auszuführen?
  • Python ist die beste Programmiersprache der Welt.