Как заставить codeRunner в коде VS распознавать мой текущий рабочий каталог? - PullRequest
0 голосов
/ 09 июля 2020

Я недавно скачал VSCode. Я занимаюсь разработкой. Обычно я делаю следующие шаги: 1) cd в мою папку Dev 2) затем код my_projects

Теперь внутри папки my_projects, это каталог рабочей области root. У меня открыт код VS, и я могу переходить к следующим папкам / файлам:

my_projects/
        > DBHelper
            > dbhelper.py
            > config.ini
        > PortfolioManagement
        > Learning

Теперь, когда я открываю dbhelper.py, я пробовал следующий тест: import os print (os.getcwd ())

Я получаю следующее:

my_projects

Но я ожидаю

my_projects/DBHelper/

Как мне получить codeRunner в VSCode для распознавания файла, в котором я сейчас нахожусь, в В этом случае dbhelper.py является текущим рабочим каталогом?

Я спрашиваю, потому что я создал класс базы данных, используя postgres, чтобы помочь мне с некоторыми личными исследованиями, и когда бы я ни использовал dbhelper в разных папках, это не распознавая файл config.ini, который у меня есть в этом каталоге.

Спасибо

Ответы [ 4 ]

0 голосов
/ 09 июля 2020

Я разобрался. В моих настройках VScode я добавил это:

{
"python.pythonPath": "/Users/anaconda/bin/python",
"code-runner.executorMap": 
{ 
    "python": "$pythonPath -u $fullFileName" 
},
"python.linting.pylintEnabled": true,
"python.linting.enabled": true,
"python.terminal.executeInFileDir": true,
"code-runner.fileDirectoryAsCwd": true

}

0 голосов
/ 09 июля 2020
Код

Vs запускает команды из папки, которую вы открыли, поэтому, если вы go перейдете к сценарию внутри нее, vscode запустит терминал в рабочей области и запустит сценарий с python ./DBHelper/dbhelper.py.

вы можете изменить cwd встроенного терминала, перейдя в настройки рабочего пространства и добавив terminal.integrated.cwd, но я не думаю, что это решит вашу проблему, так как вы, вероятно, запускаете скрипты из опции запуска.

Если вы работаете из средства запуска вы можете редактировать файл launch. json (vscode создает его автоматически в рабочей области) и добавлять разные команды запуска для каждого из ваших файлов .py.

0 голосов
/ 09 июля 2020

Это может вам помочь

import os 
dir_path = os.path.dirname(os.path.realpath(__file__))
print  dir_path

cwd = os.getcwd()
print cwd

os.chdir(dir_path)
cwd = os.getcwd()
print cwd
0 голосов
/ 09 июля 2020

Я испытал это какое-то время go, когда вы открываете папку для работы, а внутри есть другие папки, скрипты запускаются в исходной папке, которую вы открыли, а не в каталоге, где скрипт находится внутри .

Для меня быстрым решением было просто открыть каталог, в котором сохранен файл python.

Но вы можете изменить это поведение, поставив галочку в настройках: python.terminal.executeInFileDir

Go в «Файл -> Настройки -> Настройки», а затем найдите этот термин в верхней строке поиска.

Там вы можете найти и активировать эту опцию.

Но вы не можете ожидать my_projects/DBHelper/dbhelper.py от os.getcwd(), вы получите my_projects/DBHelper.

Надеюсь, это вам помогло.

...