Не компилируется исходник

Здравствуйте.
Искал нужный мне пример кода и нашел его только в программе на питоне. Всё что мне нужно - это посмотреть, как формируется строка для отправки на сервер. Точнее, как она в результате выглядит.
Скачал исходники этой программы, но они не компилируются.

H:\Projects\python\streamlink\venv\Scripts\python.exe H:/Projects/python/streamlink/streamlink_cli/__main__.py
Traceback (most recent call last):
  File "H:\Projects\python\streamlink\streamlink_cli\__main__.py", line 2, in <module>
    from streamlink_cli.main import main
  File "H:\Projects\python\streamlink\streamlink_cli\main.py", line 17, in <module>
    from socks import __version__ as socks_version
ModuleNotFoundError: No module named 'socks'

Где я ему возьму этот socks, если его нету в архиве с исходниками?

Скорее всего через pip надо установить все библиотеки.

Installation - Streamlink 2.0.0 documentation

C:\Users\RAIN>pip install python-requests
ERROR: Could not find a version that satisfies the requirement python-requests
ERROR: No matching distribution found for python-requests

Опять финита ля комедия.
Где тогда брать?
socks вроде поставился, но на него всё-равно ругается.

python -m pip install requests

Источник: Installing Requests and Supported Versions

Поставилось.

А socks тогда как?

Там-же смотрите: PySocks

но.

кстати, файла __version__ тоже нету. Потому, на него он тоже ругается


import requests
from socks import __version__ as socks_version
from websocket import __version__ as websocket_version

А, не совсем та ссылка.

Про исходники вот Developing - Streamlink 2.0.0 documentation

pip install -r dev-requirements.txt

PS C:\Users\RAIN\Desktop\streamlink-2.0.0> pip install -r dev-requirements.txt
Requirement already satisfied: pip>=6 in c:\users\rain\appdata\local\programs\python\python39\lib\site-packages (from -r dev-requirements.txt (line 1)) (20.3.3)
Collecting freezegun>=1.0.0
  Downloading freezegun-1.0.0-py2.py3-none-any.whl (14 kB)
Collecting python-dateutil>=2.7
  Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
     |████████████████████████████████| 227 kB 364 kB/s
Collecting six>=1.5
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting coverage
  Downloading coverage-5.3.1-cp39-cp39-win_amd64.whl (212 kB)
     |████████████████████████████████| 212 kB 328 kB/s
Collecting flake8
  Downloading flake8-3.8.4-py2.py3-none-any.whl (72 kB)
     |████████████████████████████████| 72 kB 476 kB/s
Collecting mccabe<0.7.0,>=0.6.0
  Downloading mccabe-0.6.1-py2.py3-none-any.whl (8.6 kB)
Collecting pycodestyle<2.7.0,>=2.6.0a1
  Downloading pycodestyle-2.6.0-py2.py3-none-any.whl (41 kB)
     |████████████████████████████████| 41 kB 465 kB/s
Collecting pyflakes<2.3.0,>=2.2.0
  Downloading pyflakes-2.2.0-py2.py3-none-any.whl (66 kB)
     |████████████████████████████████| 66 kB 389 kB/s
Collecting flake8-import-order
  Downloading flake8_import_order-0.18.1-py2.py3-none-any.whl (15 kB)
Requirement already satisfied: setuptools in c:\users\rain\appdata\local\programs\python\python39\lib\site-packages (from flake8-import-order->-r dev-requirements.txt (line 9)) (49.2.1)
Collecting mock
  Downloading mock-4.0.3-py3-none-any.whl (28 kB)
Collecting pytest
  Downloading pytest-6.2.1-py3-none-any.whl (279 kB)
     |████████████████████████████████| 279 kB 312 kB/s
Collecting atomicwrites>=1.0
  Downloading atomicwrites-1.4.0-py2.py3-none-any.whl (6.8 kB)
Collecting attrs>=19.2.0
  Downloading attrs-20.3.0-py2.py3-none-any.whl (49 kB)
     |████████████████████████████████| 49 kB 357 kB/s
Collecting pluggy<1.0.0a1,>=0.12
  Downloading pluggy-0.13.1-py2.py3-none-any.whl (18 kB)
Collecting py>=1.8.2
  Downloading py-1.10.0-py2.py3-none-any.whl (97 kB)
     |████████████████████████████████| 97 kB 329 kB/s
Collecting pytest-cov
  Downloading pytest_cov-2.10.1-py2.py3-none-any.whl (19 kB)
Collecting requests-mock
  Downloading requests_mock-1.8.0-py2.py3-none-any.whl (23 kB)
Requirement already satisfied: requests<3,>=2.3 in c:\users\rain\appdata\local\programs\python\python39\lib\site-packages (from requests-mock->-r dev-requirements.txt (line 6)) (2.25.1)
Requirement already satisfied: idna<3,>=2.5 in c:\users\rain\appdata\local\programs\python\python39\lib\site-packages (from requests<3,>=2.3->requests-mock->-r dev-requirements.txt (line 6)) (2.10)
Requirement already satisfied: chardet<5,>=3.0.2 in c:\users\rain\appdata\local\programs\python\python39\lib\site-packages (from requests<3,>=2.3->requests-mock->-r dev-requirements.txt (line 6)) (4.0.0)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\rain\appdata\local\programs\python\python39\lib\site-packages (from requests<3,>=2.3->requests-mock->-r dev-requirements.txt (line 6)) (2020.12.5)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\rain\appdata\local\programs\python\python39\lib\site-packages (from requests<3,>=2.3->requests-mock->-r dev-requirements.txt (line 6)) (1.26.2)
Collecting colorama
  Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)
Collecting iniconfig
  Downloading iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting packaging
  Downloading packaging-20.8-py2.py3-none-any.whl (39 kB)
Collecting pyparsing>=2.0.2
  Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
     |████████████████████████████████| 67 kB 128 kB/s
Collecting toml
  Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
Installing collected packages: pyparsing, toml, six, py, pluggy, packaging, iniconfig, colorama, attrs, atomicwrites, python-dateutil, pytest, pyflakes, pycodestyle, mccabe, coverage, requests-mock, pytest-cov, mock, freezegun, flake8-import-order, flake8
Successfully installed atomicwrites-1.4.0 attrs-20.3.0 colorama-0.4.4 coverage-5.3.1 flake8-3.8.4 flake8-import-order-0.18.1 freezegun-1.0.0 iniconfig-1.1.1 mccabe-0.6.1 mock-4.0.3 packaging-20.8 pluggy-0.13.1 py-1.10.0 pycodestyle-2.6.0 pyflakes-2.2.0 pyparsing-2.4.7 pytest-6.2.1 pytest-cov-2.10.1 python-dateutil-2.8.1 requests-mock-1.8.0 six-1.15.0 toml-0.10.2
PS C:\Users\RAIN\Desktop\streamlink-2.0.0>

H:\Projects\python\streamlink\venv\Scripts\python.exe H:/Projects/python/streamlink/streamlink_cli/__main__.py
Traceback (most recent call last):
  File "H:\Projects\python\streamlink\streamlink_cli\__main__.py", line 2, in <module>
    from streamlink_cli.main import main
  File "H:\Projects\python\streamlink\streamlink_cli\main.py", line 17, in <module>
    from socks import __version__ as socks_version
ModuleNotFoundError: No module named 'socks'

Process finished with exit code 1

судя по

оно поставилось глобально, а не в venv из которого приложение запускается.

Надо либо всё в venv, либо всё глобально. (лучше конечно первое)

а как?

Так, как в документации (только с командой активации для винды что-то не то там).

pip install --upgrade --user virtualenv
git clone https://github.com/streamlink/streamlink.git
cd streamlink
virtualenv --download --verbose venv
venv\Scripts\activate
pip install -r dev-requirements.txt
pip install -e .
streamlink
Microsoft Windows [Version 10.0.18363.1198]

Alex@DESKTOP-6F8AV6C C:\Users\Alex
$ git clone https://github.com/streamlink/streamlink.git
Cloning into 'streamlink'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.

Receiving objects: 100% (23474/23474), 35.23 MiB | 14.67 MiB/s, done.
Resolving deltas: 100% (15013/15013), done.

Alex@DESKTOP-6F8AV6C C:\Users\Alex
$ cd streamlink

Alex@DESKTOP-6F8AV6C C:\Users\Alex\streamlink
$ python --version
Python 3.7.4

Alex@DESKTOP-6F8AV6C C:\Users\Alex\streamlink
$ pip --version
pip 19.0.3 from c:\python37\lib\site-packages\pip (python 3.7)

Alex@DESKTOP-6F8AV6C C:\Users\Alex\streamlink
$ pip install --upgrade --user virtualenv
Collecting virtualenv
  Downloading https://files.pythonhosted.org/packages/2c/a5/bb663a902f4e8e0a55e58b5b4cb6eb1460408603f50b942d756952f916c2/virtualenv-20.3.1-py2.py3-none-any.whl (5.7MB)
    100% |████████████████████████████████| 5.7MB 5.1MB/s
Requirement already satisfied, skipping upgrade: filelock<4,>=3.0.0 in c:\users\alex\appdata\roaming\python\python37\site-packages (from virtualenv) (3.0.12)
Requirement already satisfied, skipping upgrade: importlib-metadata>=0.12; python_version < "3.8" in c:\users\alex\appdata\roaming\python\python37\site-packages (from virtualenv) (1.6.0)
Requirement already satisfied, skipping upgrade: appdirs<2,>=1.4.3 in c:\users\alex\appdata\roaming\python\python37\site-packages (from virtualenv) (1.4.4)
Collecting distlib<1,>=0.3.1 (from virtualenv)
  Downloading https://files.pythonhosted.org/packages/f5/0a/490fa011d699bb5a5f3a0cf57de82237f52a6db9d40f33c53b2736c9a1f9/distlib-0.3.1-py2.py3-none-any.whl (335kB)
    100% |████████████████████████████████| 337kB 8.5MB/s
Requirement already satisfied, skipping upgrade: six<2,>=1.9.0 in c:\users\alex\appdata\roaming\python\python37\site-packages (from virtualenv) (1.15.0)
Requirement already satisfied, skipping upgrade: zipp>=0.5 in c:\users\alex\appdata\roaming\python\python37\site-packages (from importlib-metadata>=0.12; python_version < "3.8"->virtualenv) (3.1.0)
Installing collected packages: distlib, virtualenv
  Found existing installation: distlib 0.3.0
    Uninstalling distlib-0.3.0:
      Successfully uninstalled distlib-0.3.0
  Found existing installation: virtualenv 20.0.21
    Uninstalling virtualenv-20.0.21:
      Successfully uninstalled virtualenv-20.0.21
Successfully installed distlib-0.3.1 virtualenv-20.3.1
You are using pip version 19.0.3, however version 20.3.3 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

Alex@DESKTOP-6F8AV6C C:\Users\Alex\streamlink
$ virtualenv --version
virtualenv 20.3.1 from C:\Users\Alex\AppData\Roaming\Python\Python37\site-packages\virtualenv\__init__.py

Alex@DESKTOP-6F8AV6C C:\Users\Alex\streamlink
$ virtualenv --download --verbose venv
find interpreter for spec PythonSpec(path=c:\python37\python.exe)
proposed PythonInfo(spec=CPython3.7.4.final.0-64, exe=c:\python37\python.exe, platform=win32, version='3.7.4 (tags/v3.7.4:e09359112e, Jul
8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)]', encoding_fs_io=utf-8-utf-8)
create virtual environment via CPython3Windows(dest=C:\Users\Alex\streamlink\venv, clear=False, no_vcs_ignore=False, global=False)
add seed packages via FromAppData(download=True, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\Alex\AppData\Local\pypa\virtualenv)
add activators for Bash, Batch, Fish, PowerShell, Python, Xonsh
created virtual environment CPython3.7.4.final.0-64 in 505ms
  creator CPython3Windows(dest=C:\Users\Alex\streamlink\venv, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=True, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\Alex\AppData\Local\pypa\virtualenv)
    added seed packages: pip==20.3.3, setuptools==51.1.2, wheel==0.36.2
  activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

Alex@DESKTOP-6F8AV6C C:\Users\Alex\streamlink
$ venv\Scripts\activate

(venv) Alex@DESKTOP-6F8AV6C C:\Users\Alex\streamlink
$ pip --version
pip 20.3.3 from C:\Users\Alex\streamlink\venv\lib\site-packages\pip (python 3.7)

(venv) Alex@DESKTOP-6F8AV6C C:\Users\Alex\streamlink
$ pip install -r dev-requirements.txt
Requirement already satisfied: pip>=6 in c:\users\alex\streamlink\venv\lib\site-packages (from -r dev-requirements.txt (line 1)) (20.3.3)
Collecting freezegun>=1.0.0
  Downloading freezegun-1.0.0-py2.py3-none-any.whl (14 kB)
Collecting python-dateutil>=2.7
  Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
     |████████████████████████████████| 227 kB 2.2 MB/s
Collecting six>=1.5
  Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting coverage
  Downloading coverage-5.3.1-cp37-cp37m-win_amd64.whl (212 kB)
     |████████████████████████████████| 212 kB ...
Collecting flake8
  Downloading flake8-3.8.4-py2.py3-none-any.whl (72 kB)
     |████████████████████████████████| 72 kB 5.5 MB/s
Collecting mccabe<0.7.0,>=0.6.0
  Downloading mccabe-0.6.1-py2.py3-none-any.whl (8.6 kB)
Collecting pycodestyle<2.7.0,>=2.6.0a1
  Downloading pycodestyle-2.6.0-py2.py3-none-any.whl (41 kB)
     |████████████████████████████████| 41 kB ...
Collecting pyflakes<2.3.0,>=2.2.0
  Downloading pyflakes-2.2.0-py2.py3-none-any.whl (66 kB)
     |████████████████████████████████| 66 kB ...
Collecting flake8-import-order
  Downloading flake8_import_order-0.18.1-py2.py3-none-any.whl (15 kB)
Requirement already satisfied: setuptools in c:\users\alex\streamlink\venv\lib\site-packages (from flake8-import-order->-r dev-requirements.txt (line 9)) (51.1.2)
Collecting mock
  Downloading mock-4.0.3-py3-none-any.whl (28 kB)
Collecting pytest
  Downloading pytest-6.2.1-py3-none-any.whl (279 kB)
     |████████████████████████████████| 279 kB 6.8 MB/s
Collecting atomicwrites>=1.0
  Downloading atomicwrites-1.4.0-py2.py3-none-any.whl (6.8 kB)
Collecting attrs>=19.2.0
  Downloading attrs-20.3.0-py2.py3-none-any.whl (49 kB)
     |████████████████████████████████| 49 kB ...
Collecting importlib-metadata
  Downloading importlib_metadata-3.4.0-py3-none-any.whl (10 kB)
Collecting pluggy<1.0.0a1,>=0.12
  Downloading pluggy-0.13.1-py2.py3-none-any.whl (18 kB)
Collecting py>=1.8.2
  Downloading py-1.10.0-py2.py3-none-any.whl (97 kB)
     |████████████████████████████████| 97 kB 3.6 MB/s
Collecting typing-extensions>=3.6.4
  Downloading typing_extensions-3.7.4.3-py3-none-any.whl (22 kB)
Collecting zipp>=0.5
  Downloading zipp-3.4.0-py3-none-any.whl (5.2 kB)
Collecting pytest-cov
  Downloading pytest_cov-2.10.1-py2.py3-none-any.whl (19 kB)
Collecting requests-mock
  Downloading requests_mock-1.8.0-py2.py3-none-any.whl (23 kB)
Collecting requests<3,>=2.3
  Downloading requests-2.25.1-py2.py3-none-any.whl (61 kB)
     |████████████████████████████████| 61 kB ...
Collecting certifi>=2017.4.17
  Downloading certifi-2020.12.5-py2.py3-none-any.whl (147 kB)
     |████████████████████████████████| 147 kB 6.4 MB/s
Collecting chardet<5,>=3.0.2
  Downloading chardet-4.0.0-py2.py3-none-any.whl (178 kB)
     |████████████████████████████████| 178 kB 6.8 MB/s
Collecting idna<3,>=2.5
  Downloading idna-2.10-py2.py3-none-any.whl (58 kB)
     |████████████████████████████████| 58 kB 1.7 MB/s
Collecting urllib3<1.27,>=1.21.1
  Downloading urllib3-1.26.2-py2.py3-none-any.whl (136 kB)
     |████████████████████████████████| 136 kB ...
Collecting colorama
  Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)
Collecting iniconfig
  Downloading iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting packaging
  Downloading packaging-20.8-py2.py3-none-any.whl (39 kB)
Collecting pyparsing>=2.0.2
  Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
     |████████████████████████████████| 67 kB 4.5 MB/s
Collecting toml
  Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
Installing collected packages: zipp, typing-extensions, pyparsing, importlib-metadata, urllib3, toml, six, py, pluggy, packaging, iniconfig, idna, colorama, chardet, certifi, attrs, atomicwrites, requests, python-dateutil, pytest, pyflakes, pycodestyle, mccabe, coverage, requests-mock, pytest-cov, mock, freezegun, flake8-import-order, flake8
Successfully installed atomicwrites-1.4.0 attrs-20.3.0 certifi-2020.12.5 chardet-4.0.0 colorama-0.4.4 coverage-5.3.1 flake8-3.8.4 flake8-import-order-0.18.1 freezegun-1.0.0 idna-2.10 importlib-metadata-3.4.0 iniconfig-1.1.1 mccabe-0.6.1 mock-4.0.3 packaging-20.8 pluggy-0.13.1 py-1.10.0 pycodestyle-2.6.0 pyflakes-2.2.0 pyparsing-2.4.7 pytest-6.2.1 pytest-cov-2.10.1 python-dateutil-2.8.1 requests-2.25.1 requests-mock-1.8.0 six-1.15.0 toml-0.10.2 typing-extensions-3.7.4.3 urllib3-1.26.2 zipp-3.4.0

(venv) Alex@DESKTOP-6F8AV6C C:\Users\Alex\streamlink
$ pip install -e .
Obtaining file:///C:/Users/Alex/streamlink
Requirement already satisfied: requests<3.0,>=2.21.0 in c:\users\alex\streamlink\venv\lib\site-packages (from streamlink==2.0.0+22.gb9d0d18) (2.25.1)
Collecting pycryptodome<4,>=3.4.3
  Downloading pycryptodome-3.9.9-cp37-cp37m-win_amd64.whl (14.1 MB)
     |████████████████████████████████| 14.1 MB 6.8 MB/s
Collecting PySocks!=1.5.7,>=1.5.6
  Downloading PySocks-1.7.1-py3-none-any.whl (16 kB)
Requirement already satisfied: idna<3,>=2.5 in c:\users\alex\streamlink\venv\lib\site-packages (from requests<3.0,>=2.21.0->streamlink==2.0.0+22.gb9d0d18) (2.10)
Requirement already satisfied: chardet<5,>=3.0.2 in c:\users\alex\streamlink\venv\lib\site-packages (from requests<3.0,>=2.21.0->streamlink==2.0.0+22.gb9d0d18) (4.0.0)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\alex\streamlink\venv\lib\site-packages (from requests<3.0,>=2.21.0->streamlink==2.0.0+22.gb9d0d18) (1.26.2)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\alex\streamlink\venv\lib\site-packages (from requests<3.0,>=2.21.0->streamlink==2.0.0+22.gb9d0d18) (2020.12.5)
Collecting iso-639
  Downloading iso-639-0.4.5.tar.gz (167 kB)
     |████████████████████████████████| 167 kB ...
Collecting iso3166
  Downloading iso3166-1.0.1-py2.py3-none-any.whl (8.2 kB)
Collecting isodate
  Downloading isodate-0.6.0-py2.py3-none-any.whl (45 kB)
     |████████████████████████████████| 45 kB ...
Requirement already satisfied: six in c:\users\alex\streamlink\venv\lib\site-packages (from isodate->streamlink==2.0.0+22.gb9d0d18) (1.15.0)
Collecting websocket-client
  Downloading websocket_client-0.57.0-py2.py3-none-any.whl (200 kB)
     |████████████████████████████████| 200 kB 6.4 MB/s
Building wheels for collected packages: iso-639
  Building wheel for iso-639 (setup.py) ... done
  Created wheel for iso-639: filename=iso_639-0.4.5-py3-none-any.whl size=169062 sha256=0269bc98cb5ba4ee5742ef5a0fd82d93dee7dc0220eb053402073835c63a54eb
  Stored in directory: c:\users\alex\appdata\local\pip\cache\wheels\47\60\19\6d020fc92138ed1b113a18271e83ea4b5525fe770cb45b9a2e
Successfully built iso-639
Installing collected packages: websocket-client, PySocks, pycryptodome, isodate, iso3166, iso-639, streamlink
  Running setup.py develop for streamlink
Successfully installed PySocks-1.7.1 iso-639-0.4.5 iso3166-1.0.1 isodate-0.6.0 pycryptodome-3.9.9 streamlink websocket-client-0.57.0

(venv) Alex@DESKTOP-6F8AV6C C:\Users\Alex\streamlink
$ streamlink
usage: streamlink [OPTIONS] <URL> [STREAM]

Use -h/--help to see the available options or read the manual at https://streamlink.github.io

не понимаю, что именно надо делать

В cmd команды запустить.

повторить команды со скриншота?

зачем скриншот, вот же

находясь в какой директории?

а что?

первая не важно, остальные в папке проекта.

:arrow_down: скачивание исходников и переход в папку с ними


Она там какая-то слишком линуксовая, надо так

это запустит activate.bat из папки venv.

PS H:\Projects\python\streamlink> pip install --upgrade --user virtualenv
Collecting virtualenv
  Downloading virtualenv-20.3.1-py2.py3-none-any.whl (5.7 MB)
     |████████████████████████████████| 5.7 MB 2.2 MB/s
Requirement already satisfied: six<2,>=1.9.0 in c:\users\rain\appdata\local\programs\python\python39\lib\site-packages (from virtualenv) (1.15.0)
Collecting appdirs<2,>=1.4.3
  Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Collecting distlib<1,>=0.3.1
  Downloading distlib-0.3.1-py2.py3-none-any.whl (335 kB)
     |████████████████████████████████| 335 kB 6.8 MB/s
Collecting filelock<4,>=3.0.0
  Downloading filelock-3.0.12-py3-none-any.whl (7.6 kB)
Installing collected packages: filelock, distlib, appdirs, virtualenv
  WARNING: The script virtualenv.exe is installed in 'C:\Users\RAIN\AppData\Roaming\Python\Python39\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed appdirs-1.4.4 distlib-0.3.1 filelock-3.0.12 virtualenv-20.3.1
PS H:\Projects\python\streamlink> git clone https://github.com/streamlink/streamlink.git
Cloning into 'streamlink'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 23474 (delta 0), reused 0 (delta 0), pack-reused 23470
Receiving objects: 100% (23474/23474), 35.23 MiB | 3.97 MiB/s, done.
Resolving deltas: 100% (15012/15012), done.
PS H:\Projects\python\streamlink> cd .\streamlink\
PS H:\Projects\python\streamlink\streamlink> virtualenv --download --verbose venv
virtualenv : Имя "virtualenv" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Пров
ерьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.
строка:1 знак:1
+ virtualenv --download --verbose venv
+ ~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (virtualenv:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

всё, понял

  WARNING: The script virtualenv.exe is installed in 'C:\Users\RAIN\AppData\Roaming\Python\Python39\Scripts' which is not on PATH.

но теперь

pip install -r dev-requirements.txt

выдаёт already satisfied

Так написано же

и

Можно либо добавить эту папку в PATH ОС (по идее установщик Питона это должен был сделать, может комп не перезагружался и используется старый PATH?), либо использовать полный путь C:\Users\RAIN\AppData\Roaming\Python\Python39\Scripts\virtualenv.