web-dev-qa-db-fra.com

Autorisation refusée lors de l'activation de venv

Je viens juste de commencer un nouveau projet python et de créer un venv dans le dossier du projet en exécutant virtualenv venv dans le terminal. Cependant, lorsque je lance venv/bin/activate, une erreur d’autorisation refusée est générée. 

J'ai essayé

Sudo chown -R user:user project/venv

mais je reçois

chown: user: illegal group name

J'ai organisé ces événements une tonne de fois et je n'ai jamais eu le problème. Y at-il autre chose que je peux essayer?

Je suis sur un Mac.

26
user3088202

Vous devez courir

. venv/bin/activate

ou

source venv/bin/activate

Le fichier activate est délibérément non exécutable car il doit être recherché.

Il doit être recherché car il doit modifier l'environnement. S'il est exécuté en tant que script, il ne modifiera que l'environnement du processus enfant utilisé pour exécuter le script.

Quelqu'un dans les commentaires a posé des questions sur la commande .. De la page de manuel de bash :

    .  filename [arguments]
   source filename [arguments]
          Read  and execute commands from filename in the current Shell
          environment and return the exit status of the last command
          executed from filename.

En bref, . est un shell intégré qui signifie la même chose que le source intégré.

74
David Cullen

Fondamentalement, il recherche l'autorisation d'exécuter l'activation sur le chemin du dossier créé. 

Sur la racine, donnez ci-dessous la commande des autorisations sur le chemin souhaité où se trouve activer

Sudo chmod -R 755 ~/tensorflow/* # or whatever the target structure 

Cela étendra toutes les autorisations, y compris Lecture/Écriture/Exécution et groupe

puis exécutez ~/bin/activate

0
neiodavince