Windows上多个用户共享的condaenv

时间:2019-06-19 09:43:04

标签: python anaconda virtualenv azure-data-factory

当前意外行为

我们有一台具有多个(自动)用户的计算机。 (在Microsoft Azure上)。
如果尝试在其他用户创建的conda环境中使用pip install,则会收到“访问被拒绝”错误。

复制步骤

我们使用以下命令以管理员身份安装了anaconda:

C:\Windows\Temp\Anaconda3.exe /InstallationType=AllUsers /AddToPath=1 /RegisterPython=1 /S

如果我使用一个用户创建condaenv,可以说 _azbatchtask_20 ,我们可以激活它,在其中安装软件包并停用它:

conda create -p D:\batch\tasks\shared\test-condaenv-users python=3.7 -y
conda activate D:\batch\tasks\shared\test-condaenv-users
pip install see
deactivate

但是,如果我们现在在 _azbatchtask_21 下登录,并尝试在相同的环境中安装新软件包,则会收到奇怪的错误“ Acess被拒绝”:

conda activate D:\batch\tasks\shared\test-condaenv-users

可以,但是:

pip install nltk

> Access is denied

在有用的情况下,我们使用

检查了新创建的condaenv文件夹的权限
    icacls D:\batch\tasks\shared\test-condaenv-users

    NT AUTHORITY\SYSTEM:(I)(F)
    NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
    ae0f56229000000\_azbatch:(I)(F)
    ae0f56229000000\_azbatch:(I)(OI)(CI)(IO)(F)
    BUILTIN\Administrators:(I)(F)
    BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
    ae0f56229000000\WATASK_COMMON_GROUP:(I)(F)
    ae0f56229000000\WATASK_COMMON_GROUP:(I)(OI)(CI)(IO)(F)
    NT AUTHORITY\Authenticated Users:(I)(F)
    NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(IO)(F)

我们还尝试使用以下命令向所有人授予完全权限(但是pip install之后仍然失败)

icacls D:\batch\tasks\shared\test-condaenv-users /grant "Everyone:(OI)(CI)F" /T

环境信息

conda info

conda info

active environment : D:\batch\tasks\shared\ChinaPortWeather22_condavenv37 active env location : D:\batch\tasks\shared\ChinaPortWeather22_condavenv37 shell level : 1 user config file : D:\Users\_azbatchtask_74\.condarc populated config files : conda version : 4.6.11 conda-build version : 3.17.8 python version : 3.7.3.final.0 base environment : C:\ProgramData\Anaconda3 (read only) channel URLs : https://repo.anaconda.com/pkgs/main/win-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/free/win-64 https://repo.anaconda.com/pkgs/free/noarch https://repo.anaconda.com/pkgs/r/win-64 https://repo.anaconda.com/pkgs/r/noarch https://repo.anaconda.com/pkgs/msys2/win-64 https://repo.anaconda.com/pkgs/msys2/noarch package cache : C:\ProgramData\Anaconda3\pkgs D:\Users\_azbatchtask_74\.conda\pkgs D:\Users\_azbatchtask_74\AppData\Local\conda\conda\pkgs envs directories : D:\Users\_azbatchtask_74\.conda\envs C:\ProgramData\Anaconda3\envs D:\Users\_azbatchtask_74\AppData\Local\conda\conda\envs platform : win-64 user-agent : conda/4.6.11 requests/2.21.0 CPython/3.7.3 Windows/10 Windows/10.0.14393 administrator : False netrc file : None offline mode : False

conda list --show-channel-urls

6月27日编辑:我注意到在创建的conda环境中没有conda list --show-channel-urls文件夹,因为它应该像此处的文档中所述

在我拥有的结构下查找

# packages in environment at D:\batch\tasks\shared\ChinaPortWeather22_condavenv37:
#
# Name                    Version                   Build  Channel
ca-certificates           2019.5.15                     0    defaults
certifi                   2019.3.9                 py37_0    defaults
openssl                   1.1.1c               he774522_1    defaults
pip                       19.1.1                   py37_0    defaults
python                    3.7.3                h8c8aaf0_1    defaults
setuptools                41.0.1                   py37_0    defaults
sqlite                    3.28.0               he774522_0    defaults
vc                        14.1                 h0510ff6_4    defaults
vs2015_runtime            14.15.26706          h3a45250_4    defaults
wheel                     0.33.4                   py37_0    defaults
wincertstore              0.2                      py37_0    defaults

“ \库”      驱动器D中的卷是临时存储      卷序列号是2AF3-E29E

/bin/

1 个答案:

答案 0 :(得分:4)

肯定pip似乎尝试在全球而不是在环境中安装软件包,因此,我整理了一系列您可能想强制使用本地pip的方法:

  • 在环境创建过程中安装pip:
conda create -p D:\batch\tasks\shared\test-condaenv-users python=3.7 pip
  • 在创建环境后安装pip(在您停用和重新激活环境后,本地pip应该会生效):
conda create -p D:\batch\tasks\shared\test-condaenv-users python=3.7
conda activate D:\batch\tasks\shared\test-condaenv-users
conda install pip
conda deactivate
  • 明确呼叫本地点:
conda activate D:\batch\tasks\shared\test-condaenv-users
D:\batch\tasks\shared\test-condaenv-users\bin\pip install nltk

阅读列表

希望有帮助。