Jupyter Interactive Fenster in VSCODE, das mit dem Dev Container angeschlossen ist, druckt einen falschen Pfad für __fil
Posted: 05 Feb 2025, 01:11
Ich habe einen offiziellen Python Docker -Container () mit einer Vanille -Bindungsmontage auf meinem Host ausführen, die wie folgt in einer Komponierungsdatei definiert ist:
), um von der richtigen Version von Python zu profitieren, die ich brauche. Erweiterung im Container durch das 2. VSCODE -Fenster installiert, das von den "Dev Container: Anhängen am laufenden Container ..." geöffnet wurde. Python Interactive Tab kann ich dieses seltsame Verhalten sehen: < /p>
Ich verstehe auch nicht, warum __file __ hier auf my_script.py konzentriert ist, da ich noch keine Zelle aus dieser Datei ausgelöst habe. Wie auch immer ... < /p>
Meine Ordnerstruktur aus dem Container ist wie folgt: < /p>, und wenn ich versuche, os.chdir ('/app/src/') im interaktiven Fenster zu sein, ist es offensichtlich offensichtlich fällt in einem FilenotFoundError aus: [Errno 2] Keine solche Datei oder Verzeichnis: '/app/src/'
Docker: 27.5.1
VSCODE: 1.96.4 mit: < /p>
Code: Select all
python:3.11-slim-bookworm
Code: Select all
services:
app:
...
volumes:
- ./src:/app
< /code>
Ich verwende "Dev -Container: Anhängen zum Auslaufcontainer ..." von meinem 1. VSCODE Projekt (das mit Docker gestartet wurde, komponieren Sie -d
Code: Select all
import os
# This first print is fine and reflecting the actual path inside the container:
print("Current working directory in Jupyter:", os.getcwd())
# Current working directory in Jupyter: /app
# This second print is getting me crazy because there is no such intermediary src/ folder
# inside the container:
print("My script folder path in Jupyter:", os.path.abspath(__file__))
# My script folder path in Jupyter: /app/src/mymodule/my_script.py
Meine Ordnerstruktur aus dem Container ist wie folgt: < /p>
Code: Select all
user@app-container:/app$ tree -L 2
.
├── __init__.py
├── mymodule
│ ├── __init__.py
│ └── my_script.py
└── app.py
< /code>
Kann jemand erklären, warum VSCODE einen Ordner im Container im Container sieht? Das Wort "src" befindet sich im Abschnitt "Volumen < /code>" meiner oben beschriebenen Komponierungsdatei und es geht nur um einen Pfad auf meinem Localhost, nicht im Container. BASH -Terminal im zweiten Fenster VSCODE 2ND, es gibt keinen solchen Ordner/app/src/
Versioning
Python Kernel im Container: 3.11.11Docker: 27.5.1
VSCODE: 1.96.4 mit: < /p>
- Jupyter -Erweiterung: 2024.11.0
- Python -Erweiterung: 2024.22.2
- Dev Container: 0,394.0
/>