python - python36.\_pth genkendes ikke

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger python36 på windows installeret uden admin privs.


Jeg opretter et simpelt script, tester.py


import petl as etl
fnar = [**'foo','bar'],
        ['weebl','woobl'**]
print(etl.fromcolumns(fnar).lookall())


På kommandolinjen installerer jeg PETL til en mappe.


pip install petl -t lib


Og når jeg tjekker, er det derinde.


2017-04-17  06:27 PM    <DIR>          petl
2017-04-17  06:27 PM    <DIR>          petl-1.1.1.dist-info


Jeg vil bruge den mappe til at finde min petl, så jeg opretter en python36.\_pth fil. [14]


.
lib
import site


Når jeg prøver at køre mit script, kan det ikke finde det!


>py tester.py
Traceback (most recent call last):
  File "tester.py", line 2, in <module>
    import petl as etl
ModuleNotFoundError: No module named 'petl'


Hvad misforstår jeg om at få .\_pth-filer til at fungere?

Bedste reference


Desværre bliver .pth -filerne kun evalueret, hvis de placeres på en af ​​de standardpladser, der vises af python -m site, andre end den aktuelle arbejdsmappe. Jeg kan ikke huske detaljerne, men jeg tror, ​​at Python kører gennem disse standardsteder først og kører nogen .pth-filer, som den finder der, og tilføjer derefter '' (nuværende arbejdsmappe) til starten af ​​sys.path efterfølgende .Det betyder, at du ikke kan udvide stien bare ved at tilføje en .pth fil i den mappe du starter dit script fra.


Den eneste måde jeg ved at tilføje relative steder til systemstien er at sætte dem øverst på dit hovedskript, før dine import udsagn. I dette tilfælde kan du gøre det med noget som sys.path.append( os.path.join(os.path.dirname(\_\_file\_\_), 'lib')).