Ошибка «Файл не найден» при запуске подпроцесса в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка «Файл не найден» при запуске подпроцесса в Python

Сообщение Anonymous »

Справочная информация
Я написал базовую функцию, которая пытается использовать подпроцесс для выполнения команды cmd. Сначала тестируется система пользователя (следующая функция предназначена только для пользователей Windows) перед открытием 1Password (

Код: Выделить всё

os.system("start 1Password")
) перед выполнением следующей команды cmd «op», «item», «get», item_title, «--vault», vault_name, «--format», «json», которая использует 1Password' d CLI.
Функция

Код: Выделить всё

# Importing dependencies
import os
import subprocess

# Globals
os_name = platform.system()

# Windows-only authentication: access Employee 1P Vault and extracts credentials from "Addepar API" item
def windows_1P_auth(item_title, vault_name):
try:
# Run the `op` CLI command to fetch the item
os.system("start 1Password")
result = subprocess.run(
["op", "item", "get", item_title, "--vault", vault_name, "--format", "json"],
capture_output=True,
text=True,
check=True
)
# Parse the JSON output
item_data = json.loads(result.stdout)

# Extract credential fields
username = None
credential = None
for field in item_data.get("fields", []):
if field.get("label") == "username":
api_key = field.get("value")
# print(f'API Key: {api_key}')
elif field.get("label") == "credential":
api_secret = field.get("value")
# print(f'API Secret: {api_secret}')

return api_key, api_secret

except subprocess.CalledProcessError as e:
print(f"Error running op CLI: {e.stderr}")
return None, None
except json.JSONDecodeError:
print("Failed to parse JSON output from op CLI.")
return None, None
Проблема

Хотя я успешно выполнил эту функцию на своем личном ПК с Windows, когда я пробую это на своем рабочем ПК, Я получаю следующую ошибку:
Ошибка

Код: Выделить всё

C: \Users\MyUserName\PyCharMiscProject\.venv\Scripts\python.exe "C:\Users\MyUserName\PyCharaNiscProject\Replicator 1.1.py"
Please enter an Entity ID: 8406865
Please wait for windows Password prompt
Traceback (most recent call last):
File "C:\Users\MyUserName\PyCharmMiscProject\Replicetor_1.1.px*. Line 222, in ‹nodute>
entity-attributes = get_entity_attributes(entity_id)
File "C:\Users\MyUserName\PyChareMiscProject\Replicator_1.1.PX", Line 79, in get_entity_ettributes
api_key, api_secret = windows_1P_auth(item_title, vault_name)
٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨٨
File "C:\Users\MyUserName\PyCharmMiscProject\Replicator_1.1.py", Line 22, in windows_1P_auth
result = subprocess.run(
["op", "item", "get", item_title, "--vault", vault_name, "--foreat*, "json*],
......
check=True
)
File "C:\Users\MyUserName\AppData\Local\Programs\Python|Python313\Lib|subprocess.py*, line 554, in run
with Popen(*popenargs, **kwargs) as process:
~~~~~~~~^^^^^^^^^^^^^^^^^
File "C:\Users\MyUserName\AppData\Local\Programs\Python|Python313\LAb\subprocesg.py*. line 1036, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pass_fds, cwd, env,
^^^^^^^^^^^^^^^^^^

...  ...
gid, gids, vid, umask,
^^^^^^^^^^^^^^^^^^^
start_new_session, process_group)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\MyUserName\AppData\Local\Programs|Python\Python313\Lib\subprocess.py*, line 1548, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
# no special security
^^^^^^^^^^^^^^^^^^^
......
cwd,
^^^^
startupinfo)
^^^^^^^^^^^
FileNotFoundError: (winError 2] The system cannot find the file specified

Process finished with exit code 1
Вопрос/Мысли:
Мне нужны советы о том, в чем может быть проблема? Тем более, что это, по-видимому, отлично работает на моей личной машине, однако 2 компьютера моих коллег возвращают ошибку, хотя на них определенно установлены одни и те же программы. Я знаю, что subprocess установлен (как и по умолчанию), поэтому мне интересно, нужно ли мне использовать subprocess.popen, а не subprocess.run. Есть ли в ошибке что-то очевидное, чего мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»