Как я могу выполнить команду "pip install" с конкатенацией с элементом массива в powershell - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть массив с именами модулей Python.Я хочу перебрать элементы массива, и для каждого элемента массива я хочу выполнить команду pip install.Получение ошибки со строкой

pip install + $modules[$i]

Вот как выглядит мой код.

$modules = "urllib", "pandas", "selenium", "requests", "numpy"

for($i=0; $i -lt $modules.length; $i++) {
    pip install  + $modules[$i]
}

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019

Я изменил ваш сценарий, изменил логику, и вы должны иметь обработку ошибок, где вы должны знать, если какой-либо из модулей не устанавливается.

$modules = @("urllib", "pandas", "selenium", "requests", "numpy")

    foreach($module in $modules)
    {
    try{
        pip install $module
        }
    catch
        {
        "Error in installing the module: $module"
        $_.Exception.Message
        }
    } 

Однако для URILIBсовместимость поддерживаемых версий должна быть принята во внимание.

Если переменные пути настроены правильно и pip успешно установлен (может проверить это непосредственно в cmdline), то приведенный выше скрипт будет работать.Я проверил его на своем локальном компьютере, и все модули были установлены правильно (хотя исключая numpy).

Надеюсь, это поможет.

0 голосов
/ 08 февраля 2019

Это то, что у меня сработало

& "pip" install $ ($ modules [$ i])

0 голосов
/ 07 февраля 2019

Используйте оператор амперсанда & для выполнения команд и передачи им аргументов:

& "pip" "install $($modules[$i])"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...