LINUX.ORG.RU

Как использовать pip в python venv

 


0

1

Решение:

Какой-то глюк имел место. Просто еще раз запустил python3 -m venv

...

Опять питонское...

Итак, нужно установить модуль в питон

$ pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm5.7
error: externally-managed-environment

Не хочет просто так (с 12-го дебиана):

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

Ну ладно, делаю

python3 -m venv /home/$LOGNAME/rocm_torch

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

~/rocm_torch/bin/python3.11 -m pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm5.7

И конечно пук-сренькнуло

No module named pip

Ну да нет. И pip3 там нет. Только софтссылки на python. Ладно, вручную там делаю ln -s на pip и опять пук-среньк, оно не понимает что это в venv, при попытке запуска оттуда напрямую через pip снова сообщение, что нужно в venv гонять, а если через python -m pip (pip3) то команду не находит.

Ладно может я что-то не то делаю, надо доки и маны читать. Почитаем /usr/share/doc/python3.11/README.venv

Python library modules
----------------------

If you need to install a Python library module (or version) that isn't packaged
in Debian, we recommend installing it into a virtualenv, where possible. You
can create virtualenvs with the venv Python stdlib module (in the
"python3-venv" Debian package) or the virtualenv Python 3rd-party tool (in the
"virtualenv" Debian package).

Both of these will create an isolated environment, with a copy of pip in it.
After activating the environment, you can install python applications and
library modules into the virtual environment.

e.g. instead of running:
$ pip install --user foo
run:
$ mkdir -p ~/.venvs
$ python3 -m venv ~/.venvs/foo
$ ~/.venvs/foo/bin/python -m pip install foo

If needed, the isolated environment can also have access to system Python
modules, with the "--system-site-packages" flag.

Ну и??????????????????????????????????????????????? Где заклинание, чтобы в venv поставить модуль?!!!!! Как это что «Both of these will create an isolated environment, with a copy of pip in it.» Где эта копия pip in it?

★★★★★

Последнее исправление: praseodim (всего исправлений: 7)
Ответ на: комментарий от rupert

You don’t specifically need to activate a virtual environment, as you can just specify the full path to that environment’s Python interpreter when invoking Python. Furthermore, all scripts installed in the environment should be runnable without activating it.

Ладно, сделал:

$ source ~/rocm_torch/bin/activate
bash: /home/mm/rocm_torch/bin/activate: No such file or directory

Естественно, раз там нет файла activate

praseodim ★★★★★
() автор топика
Ответ на: комментарий от vvn_black

Сейчас вроде получается с venv. Единственное, что совершенно необъяснимый глюк случился, что виртуальное окружение недосоздано почему-то оказалось при первом вызове python3 -m venv ну а я думал, что неправильно чего-то делаю.

praseodim ★★★★★
() автор топика