Python - переустановить модуль Force внутри кода - PullRequest
1 голос
/ 04 мая 2020

Я пытаюсь ускорить установку пакета внутри моего кода. Для этого у меня есть это:

import sys
import subprocess
subprocess.check_call([sys.executable, "-m", "pip", "install", 'JPype1==0.6.1 --force-reinstal'])
subprocess.check_call([sys.executable, "-m", "pip", "install", 'mysqlclient pymysql'])

Однако я получаю следующую ошибку:

ERROR: Invalid requirement: 'JPype1==0.6.3 --force-reinstal'
subprocess.CalledProcessError: Command '[python.exe', '-m', 'pip', 'install', 'JPype1==0.6.3 --force-reinstal']' returned non-zero exit status 1.

У кого-нибудь есть решение? Спасибо!

1 Ответ

2 голосов
/ 04 мая 2020

Проблема в подпроцессировании требует отдельного аргумента для каждого аргумента, отправляемого команде. Кроме того, «переустановить» пишется неправильно. Правильный код выглядит следующим образом, где каждый аргумент является отдельным, а опечатка исправлена:

import sys
import subprocess
subprocess.check_call([sys.executable, "-m", "pip", "install", 'JPype1==0.6.1', '--force-reinstall'])
subprocess.check_call([sys.executable, "-m", "pip", "install", 'mysqlclient', 'pymysql'])
...