Python не может найти путь с помощью Powershell - PullRequest
0 голосов
/ 09 ноября 2018

У меня довольно необычная проблема.Я написал скрипт на python, которому нужны ключи API.Поскольку я не хочу, чтобы они плавали в Интернете, я создал отдельный .json с ключами и добавил его в .gitignore.Пока все хорошо.

Я написал программу с VSCode, и там я мог выполнить ее без проблем.Но когда я пытаюсь использовать мою программу с обычным PowerShell, она просто не работает.Я получаю это сообщение об ошибке при запуске на внешнем PS: FileNotFoundError: [Errno 2] No such file or directory: './master-folder/key.json'

Я использую virtualenv для пакетов, но это ни на что не должно повлиять (конечно, я активировал его в PS).Вот часть кода еще раз:

keys_fp = './master-folder/key.json'

keys = load(open(keys_fp, 'r'))

Структура папок выглядит следующим образом:

.
├── programs
│   └── program.py
└── key.json

1 Ответ

0 голосов
/ 10 ноября 2018

Исходя из ваших комментариев, ваш рабочий каталог -

E:\Git\master-folder\programs\

и внутри вашего скрипта вы ссылаетесь

./master-folder/key.json

, который разрешается до

E:\Git\master-folder\programs\master-folder\key.json

но этого не существует. Если вы настроили свой скрипт на использование правильного пути, он должен решить вашу проблему:

keys_fp = f'{os.getcwd()}\\..\\key.json'

Согласно этому ответу , вы можете получить доступ к корню скрипта с помощью следующего:

import os
root = os.path.dirname(os.path.realpath(__file__))
keys_fp = f'{root}\\..\\key.json'
...