2017-05-18 96 views
1

我正在使用virtualenv安装tensorflow。以下命令工作正常。使用Virtualenv安装TensorFlow时的PermissionError

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

但如果我尝试:

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

我PermissionError:

enter image description here

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

$ sudo pip3 install tensorflow 

然后好像我可以在virtualenv之外导入tensorflow。 (是正确的?)

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

顺便说一下,我使用Python 2.7.12和3.5.2的pip 9.0.1。

virtualenv的版本是15.0.1。

+1

我认为'pip3'指向安装在'/ home/gyuhyeon/.local'中的python3,其中'pip'指向'〜/ .tensorflow/bin/pip'。你可以使用'哪个pip3'来检查这个问题。 –

+0

@AshokaLella我得到了这个:/home/gyuhyeon/.local/bin/pip3。有什么问题吗? –

+0

@AshokaLella这似乎是错的......我该如何解决这个问题? –

回答

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代替

+0

我没有virtualevn3 ...?即使它说“python3-virtualenv已经是最新版本(15.0.1 + ds-3ubuntu1)”。 –

+1

python3-virtualenv与virtualenv3相同。我正在使用不同的操作系统 –

+0

由于您的建议,我可以解决问题!是否找到我是否回答我找到的解决方案? –

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!

+0

'源〜/ .tensorflow3/bin/activate'工作。离开文件扩展名工作。我的输出是: '(tensorflow)stephen @ machine:〜/ Projects/pluralsight/tensorflow $' – nullsteph