CadQuery / CadQuery/cq-cli

Model file/script unable to load python file from parent directory

Offen
#36 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Python
Sterne
30
Forks
10
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

I have a setup something like this:

```.py
# file /models/model.py

# add parent dir to path so we can import my_utils
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir))

from my_utils import *

# build a model...
```

```.py
# file /my_utils.py

# define some helper functions...
```

This works fine when loading `/models/model.py` in cq-editor and when loading the model with `python /models/model.py`. However, when using `cq-cli` to render the model, I get `NameError: name '__file__' is not defined. Did you mean: '__name__'?` (note that `__name__` is "__cqgi__").

I haven't investigated this much yet, but I think this has to do with the way `cq-cli` is loading the model script by reading it as a text file, then passing it to `cqgi.parse()`.

Any suggestions for what the best/right approach is here? Is it reasonable for `cq-cli` to set the `__file__` variable to the script file's path? Or should I be doing something like `PYTHONPATH= cq-cli /models/model.py`?

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Reproduce the failure with the shown /models/model.py and /my_utils.py layout, then inspect how cq-cli reads the script and passes it to cqgi.parse(). Compare that path with direct Python execution and cq-editor loading. Done means the parent-directory import works through cq-cli, with the chosen __file__ or PYTHONPATH behavior established.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
cli
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.