web-dev-qa-db-fra.com

venv ne crée pas de script d'activation python3

Lorsque vous essayez de créer un virtulenv à l'aide de venv avec python 3 sur ubuntu, il ne crée pas de script d'activation. Il se termine de manière conituelle avec une erreur 1.

Documents suivants et autres publications sur SO comme https://stackoverflow.com/a/1984877

J'ai essayé de le créer de 2 manières différentes.

sayth@sayth-TravelMate-5740G:~/scripts$ python3 -m venv test4
Error: Command '['/home/sayth/scripts/test4/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
sayth@sayth-TravelMate-5740G:~/scripts$ source test4/bin/activate
bash: test4/bin/activate: No such file or directory
sayth@sayth-TravelMate-5740G:~/scripts$ ls test4/bin/
python  python3

ou

sayth@sayth-TravelMate-5740G:~/scripts$ pyvenv-3.4 test5
Error: Command '['/home/sayth/scripts/test5/bin/python3.4', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
sayth@sayth-TravelMate-5740G:~/scripts$ ls test5/bin/
python  python3  python3.4

Comment puis-je l'obtenir pour créer entièrement un venv?

Si je le fais comme ci-dessous, sans succès, je ne sais pas quel est le problème?

sayth@sayth-TravelMate-5740G:~/scripts$ python3 -Im venv panda3
Error: Command '['/home/sayth/scripts/panda3/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
sayth@sayth-TravelMate-5740G:~/scripts$ python3 -m venv panda4
Error: Command '['/home/sayth/scripts/panda4/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
28
sayth

On dirait que vous utilisez Ubuntu 14.04. Il a été livré avec un cassépyvenv . Il existe un moyen simple de créer du venv à l'aide de Python 3

1. Créer du venv sans pip

python3 -m venv --without-pip test4

ou

pyvenv-3.4 --without-pip test4

2. Obtenez pip dans votre env

source test4/bin/activate
curl https://bootstrap.pypa.io/get-pip.py | python
deactivate
source test4/bin/activate

ou

pyvenv-3.4 --without-pip myvenv
source ./myvenv/bin/activate
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-3.4.4.tar.gz
tar -vzxf setuptools-3.4.4.tar.gz
cd setuptools-3.4.4
python setup.py install
cd ..
wget https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz
tar -vzxf pip-1.5.6.tar.gz
cd pip-1.5.6
python setup.py install
cd ..
deactivate
source ./myvenv/bin/activate

Source: HackerNews , AskUbunt

81
ChillarAnand

Anaconda involucred.

Si vous utilisez Anaconda ou Miniconda cette solution peut aider:

Conda gère python lui-même en tant que package , de sorte que la mise à jour de conda python est possible, contrairement à pip, qui ne gère que = Python. Conda est disponible dans Anaconda et Miniconda (un téléchargement facile à installer avec juste Python et conda).

Donc, cette commande aiderait:

conda update python

très dérangeant pour moi mais bon, les mains au clavier dans une fenêtre de terminal: (cliquez ici, voir l'image)

Merci pour votre attention, bonne journée!

11
Jimmy Olano

La commande:

python3 -m virtualenv env

travaille pour moi, alors que:

python3 -m venv env

ne fait pas.

5
Rory

Cela a fonctionné pour moi:

python3 -m venv --without-pip test4

Une fois que j'ai tapé cela dans le terminal, le venv "test4" a été créé. Et le script "activate" a également été créé dans le répertoire "bin".

Pour toute personne utilisant python3, ayant des problèmes avec cela, remplacez simplement le nom du répertoire que vous souhaitez créer par "test4" (ou renommez-le plus tard).

Ça devrait le faire.

1
KenBlend