【问题标题】:How to pip install into a virtualenv via a bash install script?如何通过 bash 安装脚本将 pip 安装到 virtualenv 中?
【发布时间】:2012-09-14 14:13:45
【问题描述】:

我最近尝试使用 bash 脚本自动设置 Ubuntu VM(我是 bash 脚本的新手)。

问题是我设置它的方式,它不起作用。特别是 mkvirtualenv 和 workon 命令在 bash 脚本中不起作用。如何在 bash 脚本中创建一个 virtualenv 并传递一个变量,然后通过 pip 安装到 virtualenv 中?

#!/bin/bash
VENV_NAME='name_of_virtualenv'

#Setting up virtualenv
mkdir --mode=770 /var/virtualenvs
chown -R www-data:www-edit /var/virtualenvs
chmod 771 /var/virtualenvs
echo '# virtualenv and virtualwrapper' >> ~/.bashrc
echo '  export VIRTUALENV_USE_DISTRIBUTE=1'  >> ~/.bashrc # <-- Always use pip/distribute
echo '  export WORKON_HOME=/var/virtualenvs'  >> ~/.bashrc
echo '  source /usr/local/bin/virtualenvwrapper.sh'  >> ~/.bashrc
echo '  export PIP_VIRTUALENV_BASE=$WORKON_HOME'  >> ~/.bashrc
echo '  export PIP_RESPECT_VIRTUALENV=true'  >> ~/.bashrc
source ~/.bashrc

mkvirtualenv --distribute '{VENV_NAME}'
workon {VENV_NAME}

pip install psycopg2
pip install --upgrade PIL

【问题讨论】:

    标签: bash ubuntu virtualenv pip virtualenvwrapper


    【解决方案1】:

    您在通话前丢失了美元,也没有看到 VENV_NAME 的导出

    export VIRTUALENV_USE_DISTRIBUTE=1
    echo {VIRTUALENV_USE_DISTRIBUTE}
    {VIRTUALENV_USE_DISTRIBUTE}
    
    echo ${VIRTUALENV_USE_DISTRIBUTE}
    1
    

    不确定为什么需要导出到 bashrc,从每次运行它的外观来看,它会将相同的导出添加到 bashrc,这将导致每次都越来越大的 bashrc 文件

    为什么不让它们像局部变量一样

    VIRTUALENV_USE_DISTRIBUTE=1
    
    workon $VIRTUALENV_USE_DISTRIBUTE
    

    【讨论】:

      猜你喜欢
      • 2021-04-20
      • 1970-01-01
      • 2011-12-16
      • 2015-09-28
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多