使用Virtualenv安装TensorFlow时的PermissionError

时间:2017-05-18 02:46:02

标签: tensorflow pip virtualenv python-3.5

我使用virtualenv安装tensorflow。以下命令工作正常。

select G.name, Round(avg(numgenres),2) as MuddleFactor
from genres_movies GM

inner join
(select movie_id, count(*) as numGenres
 from genres_movies
 group by movie_id) MNG 
 on MNG.movie_id = GM.movie_id

inner join genres G
on GM.genre_id = G.id

group by G.name
order by MuddleFactor desc

但如果我尝试:

$ virtualenv ~/.tensorflow/bin/activate
$ pip install --upgrade tensorflow

我得到了PermissionError:

enter image description here

我用sudo尝试了最后一个命令。

$ virtualenv ~/.tensorflow/bin/activate
$ pip3 install tensorflow

然后我似乎可以在virtualenv之外导入tensorflow。 (这是正确的吗?)

如何在virtualenv中安装python 3的tensorflow?

顺便说一句,我对python 2.7.12和3.5.2使用pip 9.0.1。

virtualenv的版本是15.0.1。

2 个答案:

答案 0 :(得分:1)

如果您的虚拟环境位于python3中。运行pip install tensorflow应该在python3环境中安装它。

$ virtualenv3 venv 
$ source venv/bin/activate
(venv)$ pip install tensorflow
(venv)$ pip freeze
appdirs==1.4.3
numpy==1.12.1
packaging==16.8
protobuf==3.3.0
pyparsing==2.2.0
six==1.10.0
tensorflow==1.1.0
Werkzeug==0.12.2
(venv) $>python
Python 3.6.0 (default, Jan 16 2017, 12:12:55) 
[GCC 6.3.1 20170109] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> 

如果您正在运行

virtualenv ~/.tensorflow/bin/activate

确保virtualenv适用于python3。并且您的虚拟环境将在~/.tensorflow/bin/activate创建(不确定您是否需要)。我建议将该地址更改为简单的地址,并确保它不包含名为您要导入的某些库的文件夹。它有时会引起问题。

如果您尝试在ipython3中导入tf,还应确保ipython安装在同一环境中。如果你跑

ipython notebook

这将启动默认的ipython(/ usr / bin / ipython)。你不想要那个。因此,请改为运行venv/bin/ipython3

答案 1 :(得分:1)

对于python2:

$ virtualenv --system-site-packages ~/.tensorflow
$ source ~/.tensorflow/bin/activate
(.tensorflow)$ pip install --upgrade tensorflow

对于python3:

$ virtualenv -p python3.5 --system-site-packages ~/.tensorflow3
$ source ~/.tensorflow3/bin/activate
(.tensorflow3)$ pip3 install --upgrade tensorflow

使用这些方法,我只能在virtualenvs中成功安装tensorflow。

非常感谢@AshokaLella!