使用virtualenv使用shell脚本

时间:2015-12-03 19:53:12

标签: python django bash postgresql virtualenv

所以我正在尝试简化我的部署过程。我有一个带Vagrant的虚拟机(Ubuntu Vivid64,virtualenv,django和postgres),但我仍然需要在执行vagrant up后执行很多命令。我使用过这个vagrantfile:https://github.com/FlipperPA/django-python3-vagrant

这是通过Vagrant配置脚本执行的:

sudo apt-get -qq install git python3-pip > /dev/null 2>&1
sudo pip3 install --quiet virtualenv
sudo pip3 install --quiet virtualenvwrapper
mkdir ~vagrant/.virtualenvs
chown vagrant:vagrant ~vagrant/.virtualenvs
printf "\n\n# Virtualenv settings\n" >> ~vagrant/.bashrc
printf "export PYTHONPATH=/usr/lib/python3.4" >> ~vagrant/.bashrc
printf "export WORKON_HOME=~vagrant/.virtualenvs\n" >> ~vagrant/.bashrc
printf "export PROJECT_HOME=/vagrant\n" >> ~vagrant/.bashrc
printf "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.4\n" >> ~vagrant/.bashrc

printf "source /usr/local/bin/virtualenvwrapper.sh\n" >> ~vagrant/.bashrc
printf "alias python='/usr/bin/python3.4'\n" >> ~vagrant/.bashrc

完成后,我想创建一个新的virtualenv并在其中安装django。然后我想安装postgres和相关的包,为postgres创建数据库,然后为postgres连接安装Python包。这是我提出的shell脚本:

#!/bin/bash

sudo apt-get update

# Setup virtual environment for Django
mkvirtualenv vms_django
pip3 install django

# Setup Postgres
sudo apt-get install libpq-dev postgresql postgresql-contrib
sudo su Postgres
psql postgres -c "CREATE DATABASE djangodb;
CREATE USER hhhhh WITH PASSWORD 'root';
ALTER ROLE hhhhh SET client_encoding TO 'utf8';
ALTER ROLE hhhhh SET default_transaction_isolation TO 'read committed';
ALTER ROLE hhhhh SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE djangodb TO hhhhh;"
exit

# Setup Postgres Django connection
pip3 install psycopg2

# Migrate DB
python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py createsuperuser

......但这不起作用。找不到mkvirtualenv和psql命令,最后三个python命令抛出importerrors:没有名为'psycopg2'的模块。

任何人都能伸出援手吗?我们也欢迎其他解决问题的方法。

0 个答案:

没有答案