安装Tensorflow时出现"Permission denied"错误

12

我正在尝试通过Anaconda安装TensorFlow(我的Python版本是3.5.2版)。

当我运行以下命令时:

(tensorflow)C:> pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.1-cp35-cp35m-win_amd64.whl 

根据Tensorflow.org指南,以下提示出现:

Exception:
Traceback (most recent call last):
File "C:\Users\Anaconda3\lib\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
File "C:\Users\Anaconda3\lib\site-packages\pip\commands\install.py", line 317, in run
prefix=options.prefix_path,
File "C:Anaconda3\lib\site-packages\pip\req\req_set.py", line 742, in install
**kwargs
File "C:\Users\Anaconda3\lib\site-packages\pip\req\req_install.py", line 831, in install
self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
File "C:\Users\Anaconda3\lib\site-packages\pip\req\req_install.py", line 1032, in move_wheel_files
isolated=self.isolated,
File "C:\Users\Anaconda3\lib\site-packages\pip\wheel.py", line 346, in move_wheel_files
clobber(source, lib_dir, True)
File "C:\Users\Anaconda3\lib\site-packages\pip\wheel.py", line 324, in clobber
shutil.copyfile(srcfile, destfile)
File "C:\Users\Anaconda3\lib\shutil.py", line 115, in copyfile
with open(dst, 'wb') as fdst:
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\Anaconda3\\Lib\\site-packages\\numpy\\core\\multiarray.cp35-win_amd64.pyd'

我不知道是什么导致了这个错误。有人可以帮我解决吗?


在类似于Bash的环境中执行pip安装似乎可以避免这种问题。我只在使用tensorflow时遇到过这个问题。 - Nicolas
9个回答

29

可能有点晚,但我遇到了完全相同的错误,并且这就是发生的事情。我的问题是,在numpy内部使用的某个文件被anaconda(或其他进程)锁定了,我猜tensorflow需要那个文件。因此我得到了拒绝许可。我所做的一切就是关闭所有进程,包括anaconda、jupyter等,并运行:

1) conda update --all
2) pip install --ignore-installed tensorflow

打开管理员命令提示符,不需要激活tensorflow,只需在命令提示符中输入相应命令即可。例如:C:\\> pip install --ignore-installed tensorflow(您的目录可能会有所不同)即可,如有困难,请告知。


3
在尝试过互联网上所有的答案之后,这个方法对我起了作用。感谢指出这一点。 - user2110239
确实有一些进程锁定了该文件,我自己无法删除该文件。 - SDJSK
1
我认为你不需要删除任何东西。只需停止解锁文件的进程,你就可以继续进行了。 - Digvijay Sawant
1
我有一个正在运行的ipython实例,但我忘记了它,关闭它释放了资源,这样我就可以安装了。谢谢你指导我向正确的方向。 - BobtheMagicMoose

2

以管理员身份运行cmd控制台,然后执行安装程序。

您可以在运行或Cortana中输入cmd,然后右键单击控制台并选择以管理员身份运行。


1

我在几台Windows机器上(W7,W8.1和W10)都遇到了同样的问题。最终,我以相同的方式解决了所有这些问题:

  1. Uninstall Anaconda
  2. Download Anaconda3-4.2.0 from Anaconda Installer Archive. This version of Anaconda includes Python 3.5.2. TensorFlow only supports version 3.5.x of Python on Windows.Although you can create an environment with version 3.5 of Python, I recommend installing Anaconda 4.2.0
  3. Install Anaconda3-4.2.0 on a different drive than the Windows drive, for example in D:\Programdata\Anaconda3. Although installing on another drive is no longer necessary, better to select to install for all users.
  4. Open an Anaconda Promp with administrator privileges and:
  5. Create a environment named tensorflow by invoking the following command:

    conda create -n tensorflow python=3.5

  6. Activate the conda environment by issuing the following command:

    activate tensorflow

  7. Install TensorFlow:

    conda install -c conda-forge tensorflow

  8. Install Jupyter and Spyder at least, but surely you will need to install scipy too for example:

    conda install spyder

    conda install jupyter

  9. After that you can check if all is correct by invoking python and trying the next program:

    import tensorflow as tf
    hail = tf.constant('Hello World')
    session = tf.Session()
    print(session.run(hail))
    
  10. Now you can check if Spyder works. Exit from Python, invoke Spyder from Anaconda prompt and try de program.

  11. If you have any problem with iPython, install it on the tensorflow enviroment.

    conda install ipython

  12. If you want to update spyder write the following command:

    conda update spyder

请在激活tensorflow环境后从Anaconda提示符中启动Spyder。
希望对你有用。
编辑:自1.2.0版本起,TensorFlow与Python 3.6兼容,因此您可以安装最新版本的Anaconda(4.4.0 | 发布日期:2017年5月31日),其中包含Python 3.6。

我遇到了相同的问题,只是按照步骤1和2进行操作。然后,没有以管理员身份运行Anaconda提示符(我没有权限这样做),我按照https://www.tensorflow.org/install/install_windows上的说明进行操作,成功解决了问题。 - Steffen J.
我认为你不想使用Spyder,因为我尝试通过PIP安装Spyder失败了。你使用Spyder吗? - Juan Pueyo

1
也许是因为有其他进程正在使用tensorflow。尝试关闭这些进程,然后安装或更新tensorflow。

1

我在Windows上遇到了权限被拒绝的问题,但是以下方法对我有效:

  1. 右键单击cmd或git控制台>以管理员身份运行
  2. pip install tensorflow

0

我有一个文件被卡住了,是由于 Jupyter 崩溃导致的。重新启动并以管理员身份重新安装后,一切都好了。


0

我在Python 3.6中遇到了同样的错误,以管理员模式运行cmd,解决得很顺利。


0
我遇到了同样的错误,通过先运行conda update --all来解决它。
但是要小心使用conda update: (https://github.com/ContinuumIO/anaconda-issues/issues/830) 更新软件包。
conda:        4.0.5-py35_0       --> 4.1.1-py35_0
conda-env:    2.4.5-py35_0       --> 2.5.0-py35_0
matplotlib:   1.5.1-np110py35_0  --> 1.5.1-np111py35_0
mkl:          11.3.1-0           --> 11.3.3-1
mkl-service:  1.1.2-py35_0       --> 1.1.2-py35_1
numexpr:      2.5-np110py35_0    --> 2.5.2-np111py35_1
numpy:        1.10.4-py35_0      --> 1.11.0-py35_1
pandas:       0.18.0-np110py35_0 --> 0.18.1-np111py35_0
scikit-learn: 0.17.1-np110py35_0 --> 0.17.1-np111py35_1
scipy:        0.17.0-np110py35_0 --> 0.17.0-np111py35_4

如果安装路径包含空格,则会破坏Windows下的Scripts/activate.bat。 (将activate.bat替换为原始文件就可以正常工作。)


-3

我通过以下命令解决了问题

pip install  --upgrade
https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.1-cp35-cp35m-win_amd64.whl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接