2016-08-27 4 views
1

Sollte PYTHONPATH ./build/* einschließen?

$ python setup.py build_ext 

mit der üblichen Cython Erweiterung Konfiguration Lauf erstellt ein build Verzeichnis und legt die kompilierten Module tief in ihr.

Wie soll der Python-Interpreter sie jetzt finden? Sollte PYTHONPATH diese Unter-Unterverzeichnisse enthalten? Es scheint mir verdächtig. Vielleicht soll das anders funktionieren?

Antwort

1

Vermutlich, wenn Sie ein Paket mit Cython Code schreiben, your setup.py will contain something similar to this:

setup(
    ext_modules = cythonize("example.pyx") 
) 

(es gibt einige Variationen, aber das ist die allgemeine Idee). Wenn Sie laufen

python setup.py install 

oder

python setup.py install --user 

Sie sehen es Binär-Dateien erstellt (mit Erweiterungen basierend auf Ihrem O - auf Mine wird es example.so sein) und kopiert sie auf das Standard-Installationsverzeichnis (auch abhängig von Ihrem Betriebssystem).

Diese Binärdateien befinden sich daher bereits im Importpfad Ihrer Python-Distribution und können wie normale Module import sein.

Folglich müssen Sie das Build-Verzeichnis nicht zum Pfad hinzufügen. Installieren Sie einfach (möglicherweise mit --user, oder verwenden Sie virtualenv, wenn Sie entwickeln), und lassen Sie die Erweiterungen auf die normale Weise importiert werden.

1

Sie die Informationen hier https://docs.python.org/3.5/install/

Körperbau finden ist ein Zwischenergebnis vor Python tatsächlich das Modul installieren. Setzen Sie in PYTHONPATH die Wege in die Bibliothek, die zum Beispiel ist:

<dir>/local/lib/python 

wenn Sie die „Home“ Installationstechnik und dir ist das Verzeichnis, das Sie gewählt haben, ex

/home/user2