Описание проблемы
Я пытаюсь создать среду conda из файла .yml в файле .bat.Так как я делаю это в своей компании, необходимо настроить прокси.Когда я делаю это в командном окне, среда успешно создается.Однако, когда в файле .bat возникает исключение, и conda предоставляет отчет об ошибке для отправки.
Этот файл .bat, который я создаю, очень нужен, поэтому мои вопросы:
Существуют ли различия в импорте между запуском этого процесса в пакетном режиме и cmd, которые не позволяют мне получить это из файла .bat?Что мне нужно сделать, чтобы запустить этот процесс для файла .bat?
Примеры кода для воспроизведения проблемы:
1,В командном окне
В cmd, если я запускаю следующие команды, я могу получить мой результат , который создает среду, специфичную для файла .yml (только образцы):
set https_proxy=https://username:password@proxy:port
conda env create -f environment-sample.yml
2.В .bat файле
В .bat, запустив файл, содержащий следующий код, я получаю сообщение об ошибке, которое будет представлено ниже:
REM Using Delayed Expansion because this code will be inside an IF statement on .bat
setlocal EnableDelayedExpansion
set /p login="Login: "
set /p password="Password: "
set https_proxy=https://!login!:!password!@proxy:port
conda env create -f environment.yml
ОШИБКАСООБЩЕНИЕ ВОЗВРАЩЕНО:
Collecting package metadata: failed
# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<
Traceback (most recent call last):
File "C:\Anaconda3\lib\site-packages\requests\adapters.py", line 412, in send
conn = self.get_connection(request.url, proxies)
File "C:\Anaconda3\lib\site-packages\requests\adapters.py", line 305, in get_connection
proxy_url = parse_url(proxy)
File "C:\Anaconda3\lib\site-packages\urllib3\util\url.py", line 199, in parse_url
raise LocationParseError(url)
urllib3.exceptions.LocationParseError: Failed to parse: lnx237in.sjk.emb:9090
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Anaconda3\lib\site-packages\conda\exceptions.py", line 1002, in __call__
return func(*args, **kwargs)
File "C:\Anaconda3\lib\site-packages\conda_env\cli\main.py", line 73, in do_call
exit_code = getattr(module, func_name)(args, parser)
File "C:\Anaconda3\lib\site-packages\conda_env\cli\main_create.py", line 106, in execute
installer.install(prefix, pkg_specs, args, env)
File "C:\Anaconda3\lib\site-packages\conda_env\installers\conda.py", line 27, in install
unlink_link_transaction = solver.solve_for_transaction(prune=getattr(args, 'prune', False))
File "C:\Anaconda3\lib\site-packages\conda\core\solve.py", line 107, in solve_for_transaction
force_remove, force_reinstall)
File "C:\Anaconda3\lib\site-packages\conda\core\solve.py", line 145, in solve_for_diff
force_remove)
File "C:\Anaconda3\lib\site-packages\conda\core\solve.py", line 235, in solve_final_state
ssc = self._collect_all_metadata(ssc)
File "C:\Anaconda3\lib\site-packages\conda\common\io.py", line 85, in decorated
return f(*args, **kwds)
File "C:\Anaconda3\lib\site-packages\conda\core\solve.py", line 286, in _collect_all_metadata
index, r = self._prepare(prepared_specs)
File "C:\Anaconda3\lib\site-packages\conda\core\solve.py", line 678, in _prepare
self.subdirs, prepared_specs)
File "C:\Anaconda3\lib\site-packages\conda\core\index.py", line 213, in get_reduced_index
new_records = query_all(spec)
File "C:\Anaconda3\lib\site-packages\conda\core\index.py", line 176, in query_all
return tuple(concat(future.result() for future in as_completed(futures)))
File "C:\Anaconda3\lib\site-packages\conda\core\subdir_data.py", line 93, in query
self.load()
File "C:\Anaconda3\lib\site-packages\conda\core\subdir_data.py", line 147, in load
_internal_state = self._load()
File "C:\Anaconda3\lib\site-packages\conda\core\subdir_data.py", line 218, in _load
mod_etag_headers.get('_mod'))
File "C:\Anaconda3\lib\site-packages\conda\core\subdir_data.py", line 429, in fetch_repodata_remote_request
timeout=timeout)
File "C:\Anaconda3\lib\site-packages\requests\sessions.py", line 546, in get
return self.request('GET', url, **kwargs)
File "C:\Anaconda3\lib\site-packages\requests\sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "C:\Anaconda3\lib\site-packages\requests\sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "C:\Anaconda3\lib\site-packages\requests\adapters.py", line 414, in send
raise InvalidURL(e, request=request)
requests.exceptions.InvalidURL: Failed to parse: lnx237in.sjk.emb:9090
`$ C:\Anaconda3\Scripts\conda-env-script.py create -f environment.yml`
environment variables:
CIO_TEST=<not set>
CLASSPATH=C:\Program Files\Java\jdk1.8.0_51\lib\tools.jar
CONDA_AUTO_UPDATE_CONDA=false
CONDA_EXE=C:\Anaconda3\Scripts\conda.exe
CONDA_ROOT=C:\Anaconda3
CONDA_SHLVL=0
HOMEPATH=\Users\MFINACI
HTTPS_PROXY=<set>
MIC_LD_LIBRARY_PATH=C:\Program Files (x86)\Common Files\Intel\Shared
Libraries\compiler\lib\mic
PATH=C:\Anaconda3\;C:\Anaconda3\Library\mingw-w64\bin;C:\Anaconda3\Library\
usr\bin;C:\Anaconda3\Library\bin;C:\Anaconda3\Scripts;C:\Anaconda3\bin
;C:\Anaconda3\condabin;C:\Anaconda3;C:\Anaconda3\Library\mingw-w64\bin
;C:\Anaconda3\Library\usr\bin;C:\Anaconda3\Library\bin;C:\Anaconda3\Sc
ripts;C:\ProgramData\Oracle\Java\javapath;C:\Program Files
(x86)\VNI\imsl\fnl710\winin140x64\lib;C:\Program Files (x86)\Common
Files\Microsoft Shared\VSA\10.0\VsaEnv;C:\Program Files (x86)\Common
Files\Intel\Shared Libraries\redist\intel64\mpirt;C:\Program Files
(x86)\Common Files\Intel\Shared
Libraries\redist\intel64\compiler;C:\Program Files (x86)\Common
Files\Intel\Shared Libraries\redist\ia32\mpirt;C:\Program Files
(x86)\Common Files\Intel\Shared Libraries\redist\ia32\compiler;C:\Orac
le\product\11.2.0\client_32\bin;C:\Oracle\product\11.2.0\client_64\bin
;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS
Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Win
dows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R)
Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R)
Management Engine Components\DAL;C:\Program Files\Intel\Intel(R)
Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R)
Management Engine Components\IPT;c:\Program Files (x86)\Microsoft SQL
Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL
Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL
Server\100\DTS\Binn\;C:\Program Files\Microsoft Windows Performance
Toolkit\;C:\Program Files\Java\jdk1.8.0_51\bin;C:\Program Files\Tortoi
seSVN\bin;C:\Users\MFINACI\AppData\Local\Programs\Microsoft VS
Code\bin;C:\Users\MFINACI\AppData\Local\Programs\Git\cmd
PSMODULEPATH=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
PYTHONIOENCODING=1252
REQUESTS_CA_BUNDLE=<not set>
SSF_LIBRARY_PATH=C:\Program Files (x86)\SAP\FrontEnd\SecureLogin\lib\sapcrypto.dll
SSL_CERT_FILE=<not set>
active environment : None
shell level : 0
user config file : C:\Users\MFINACI\.condarc
populated config files : C:\Users\MFINACI\.condarc
conda version : 4.6.7
conda-build version : 3.10.5
python version : 3.7.2.final.0
base environment : C:\Anaconda3 (writable)
channel URLs : https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/free/win-64
https://repo.anaconda.com/pkgs/free/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
package cache : C:\Anaconda3\pkgs
C:\Users\MFINACI\.conda\pkgs
C:\Users\MFINACI\AppData\Local\conda\conda\pkgs
envs directories : C:\Anaconda3\envs
C:\Users\MFINACI\.conda\envs
C:\Users\MFINACI\AppData\Local\conda\conda\envs
platform : win-64
user-agent : conda/4.6.7 requests/2.21.0 CPython/3.7.2 Windows/7 Windows/6.1.7601
administrator : False
netrc file : None
offline mode : False
An unexpected error has occurred. Conda has prepared the above report.
If submitted, this report will be used by core maintainers to improve
future releases of conda.
Would you like conda to send this report to the core maintainers?
[y/N]:
Попытки понять проблему
Я проверил, правильно ли назначены переменные и они ли они.Я сделал это в основном "повторяя" переменные.Результат на экране, который я получил, комментируя первую строку кода (REM @echo off), выглядит следующим образом (Изменение полного пути, чтобы сделать его чище):
C:\Users\MFINACI>set /p login="Login: "
Login: userexample
C:\Users\MFINACI>echo !login!
userexample
C:\Users\MFINACI>set /p password="Password: "
Password: passwordexample
C:\Users\MFINACI>echo !password!
passwordexample
C:\Users\MFINACI>set https_proxy=https://!login!:!password!@lnx237in.sjk.emb:9090
C:\Users\MFINACI>echo !https_proxy!
https://userexample:passwordexample@lnx237in.sjk.emb:9090
Также пытался найти похожие проблемы в сообществе, однако,Ни один из них не представляет проблему успешного получения результатов в cmd, а не в файле .bat.Не могли бы вы помочь мне?
Это мой первый вопрос, я действительно старался не задавать дубликаты и уважать правила сообщества.Извините, если я сделал что-то не так.