V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
chackchackGO
V2EX  ›  Python

Linux 的 conda 目录默认仅对 root 用户可写,那 pip 怎么办?

  •  
  •   chackchackGO · 333 天前 · 1228 次点击
    这是一个创建于 333 天前的主题,其中的信息可能已经有所发展或是发生改变。

    pip install 时会提示 site-pakcage 目录不可写, 默认向用户目录写。

    记得我在 wsl 安装时没遇到过这个问题啊。

    正确的解决方案是什么? 给/opt/miniconda3目录递归的加上写一般用户的写权限?

    15 条回复    2024-01-04 13:50:11 +08:00
    nagisaushio
        1
    nagisaushio  
       333 天前
    你 conda 怎么装的?
    chackchackGO
        2
    chackchackGO  
    OP
       333 天前
    @nagisaushio 记得是"sudo pacman -S miniconda3"
    chackchackGO
        3
    chackchackGO  
    OP
       333 天前
    @nagisaushio 好像 miniconda3 只在 aur 有, 那就是 yay 装的了。。
    lonewolfakela
        4
    lonewolfakela  
       333 天前
    答案是 conda 应该用用户权限装在用户目录下,而不是用管理员权限装在/opt 下面……
    Worldispow
        5
    Worldispow  
       333 天前 via Android
    win 也有这个问题,需要手动调整目录权限
    Muniesa
        6
    Muniesa  
       333 天前 via Android
    用 conda 官网的 sh 装,默认是在用户目录下面的
    chackchackGO
        7
    chackchackGO  
    OP
       333 天前
    @lonewolfakela
    @Worldispow
    @Muniesa 哦对,确实官网的安装向导都是指向用户目录下。
    那我还是直接改/opt/miniconda3 的目录权限吧
    KaliZ
        8
    KaliZ  
       333 天前
    可以通过环境变量 CONDA_ENVS_PATH 修改 conda 的存储路径,建议生成一个 envs.sh 脚本,每次登陆的时候 source 一下

    #!/usr/bin/bash
    # envs.sh

    export CONDA_ENVS_PATH=/usr/${usrname}/.conda/envs
    source activate base
    conda activate py36

    # end of envs.sh
    proxytoworld
        9
    proxytoworld  
       332 天前
    用 sudo 装?
    EVANGELIONAir
        10
    EVANGELIONAir  
       332 天前
    我给课题组服务器安装 anaconda 的方法是这样的

    下载 anaconda.sh ,然后
    sudo bash PATH/AnacondaXXXXX.sh

    指定安装目录 /opt/anaconda3
    这样能所有用户访问

    每个用户自己的环境会在自己的 home 目录下自动生成.conda 文件夹,互不干扰
    EVANGELIONAir
        11
    EVANGELIONAir  
       332 天前
    每个用户的 bash 或 zsh 要添加以下内容

    # >>> conda initialize >>>
    # !! Contents within this block are managed by 'conda init' !!
    __conda_setup="$('/opt/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
    if [ $? -eq 0 ]; then
    eval "$__conda_setup"
    else
    if [ -f "/opt/anaconda3/etc/profile.d/conda.sh" ]; then
    . "/opt/anaconda3/etc/profile.d/conda.sh"
    else
    export PATH="/opt/anaconda3/bin:$PATH"
    fi
    fi
    unset __conda_setup
    # <<< conda initialize <<<
    yolee599
        12
    yolee599  
       332 天前
    考虑一下 python -m venv ?现在安装 pip 包规范的做法就是这样。
    chackchackGO
        13
    chackchackGO  
    OP
       332 天前
    @yolee599 不同环境安装相同包时会自动拉取本地缓存吗?
    chackchackGO
        14
    chackchackGO  
    OP
       332 天前
    @EVANGELIONAir 那你的情况应该就是和主题描述的情况一致,pip fallback 写入到用户目录去了..
    julyclyde
        15
    julyclyde  
       331 天前
    @yolee599 感觉好像规范做法变过很多轮
    不知道当前的规范是怎样的

    貌似是区分 system 、user 、app specific ?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2675 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 15:16 · PVG 23:16 · LAX 07:16 · JFK 10:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.