Как установить относительный путь для виртуальной среды Python? - PullRequest
0 голосов
/ 07 июля 2019

Я создал venv для своего проекта Python и создал пакетный запуск Windows, который автоматически устанавливает venv и запускает нужный скрипт на python, похоже, так. Этот 'runner.bat' выглядит так:

echo off
cmd /k "cd /d venv\Scripts & activate & cd /d    ..\..\src & python myprogram.py"

'activate.bat' looks like that:

@echo off

rem This file is UTF-8 encoded, so we need to update the current code page while executing it
for /f "tokens=2 delims=:" %%a in ('"%SystemRoot%\System32\chcp.com"') do (
    set "_OLD_CODEPAGE=%%a"
)
if defined _OLD_CODEPAGE (
    "%SystemRoot%\System32\chcp.com" 65001 > nul
)

set "VIRTUAL_ENV=..\venv"

if not defined PROMPT (
    set "PROMPT=$P$G"
)

if defined _OLD_VIRTUAL_PROMPT (
    set "PROMPT=%_OLD_VIRTUAL_PROMPT%"
)

if defined _OLD_VIRTUAL_PYTHONHOME (
    set "PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%"
)

set "_OLD_VIRTUAL_PROMPT=%PROMPT%"
set "PROMPT=(venv) %PROMPT%"

if defined PYTHONHOME (
    set "_OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%"
    set PYTHONHOME=
)

if defined _OLD_VIRTUAL_PATH (
    set "PATH=%_OLD_VIRTUAL_PATH%"
) else (
    set "_OLD_VIRTUAL_PATH=%PATH%"
)

set "PATH=%VIRTUAL_ENV%\Scripts;%PATH%"

:END
if defined _OLD_CODEPAGE (
    "%SystemRoot%\System32\chcp.com" %_OLD_CODEPAGE% > nul
    set "_OLD_CODEPAGE="
)

Все это прекрасно работает на моей локальной машине, но после загрузки с github на другую машину он не может правильно установить venv - Python не найден, так как очевидно, что был неправильный путь к python.exe в venv \ pyvenv. CFG файл. У меня не было пути к venv \ Scripts \ python.exe, который я хочу использовать для этого проекта, но вместо этого я использовал путь к оригинальному python.exe на моей локальной машине, на котором я разработал проект.

Как я могу установить относительный путь к этому файлу конфигурации, чтобы любой пользователь, который клонировал этот проект на локальную машину, мог запустить его моим бегуном? Если я правильно понимаю, это должно быть основным принципом использования виртуальной среды или я не прав? Или что еще нужно установить? Я действительно ценю любую помощь.

Ожидаемые результаты: программа запускается и работает на любом компьютере. Фактический результат: "Нет Python в \ somepath \"

...