python3.7+django环境搭建

作者:泥泥
发布于:2020年2月20日 09:00
更新于:2021年7月5日 17:35

python3.7+django环境搭建:
 

上传软件包,/application/tools/,执行脚本安装:auto_install_lanp_mysql5532_source.sh

 

 

一.安装pipenv

pipenv就是把pipvirtualenv包装起来的一个便携工具,它会自动为您的项目创建和管理virtualenv.

1.1.安装python3

下载python3,

yum install libffi-devel gcc gcc-c++ zlib zlib-devel readline-devel openssl-devel bzip2-devel sqlite-devel
wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz
xz -d Python-3.7.6.tar.xz
tar xvf Python-3.7.6.tar
cd Python-3.7.6
./configure
make
make install
yum install libffi-devel 
pip3 install --upgrade pip
pip3 install pipenv

检查安装结果

[root@qyi-5e4375265328b Python-3.7.6]# python3 -V
Python 3.7.6
[root@qyi-5e4375265328b Python-3.7.6]# pip3 -V
pip 19.2.3 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)

创建虚拟环境

mkdir /data/www -p
cd /data/www/
pipenv --python 3.7
virtualenv -p /usr/local/bin/python3 ttgame
 

删除虚拟环境

pipenv --rm

修改pip源

vim Pipfile
[[source]]
name = "pypi"
url = "https://mirrors.aliyun.com/pypi/simple/"
verify_ssl = true

批量安装包

pipenv install -r /data/www/requestments_centos_6.5.txt --skip-lock

导出包

pipenv lock -r --dev > requirements.txt

pipenv有个缺点,lock不稳定而且时间非常长,所以安装包的时候记得加上--skip-lock,在最后开发完成要提交到仓库的时候再pipenv lock。希望将来的版本能够优化

pipenv具有下列的选项:

$ pipenv
Usage: pipenv [OPTIONS] COMMAND [ARGS]...

Options:
  --where          显示项目文件所在路径
  --venv           显示虚拟环境实际文件所在路径
  --py             显示虚拟环境Python解释器所在路径
  --envs           显示虚拟环境的选项变量
  --rm             删除虚拟环境
  --bare           最小化输出
  --completion     完整输出
  --man            显示帮助页面
  --three / --two  使用Python 3/2创建虚拟环境(注意本机已安装的Python版本)
  --python TEXT    指定某个Python版本作为虚拟环境的安装源
  --site-packages  附带安装原Python解释器中的第三方库
  --jumbotron      An easter egg, effectively.
  --version        版本信息
  -h, --help       帮助信息

pipenv可使用的命令参数:

Commands:
  check      检查安全漏洞
  graph      显示当前依赖关系图信息
  install    安装虚拟环境或者第三方库
  lock       锁定并生成Pipfile.lock文件
  open       在编辑器中查看一个库
  run        在虚拟环境中运行命令
  shell      进入虚拟环境

报错

ERROR: No matching distribution found for django-suit==2.0a1 (from -r requestments_centos_6.5.txt (line 14))

处理:

pipenv install  https://github.com/darklow/django-suit/tarball/v2

 

检查安装结果

root@qyi-5e4375265328b www]# pipenv shell
Launching subshell in virtual environment…
 . /root/.local/share/virtualenvs/www-r_bj_E01/bin/activate
[root@qyi-5e4375265328b www]#  . /root/.local/share/virtualenvs/www-r_bj_E01/bin/activate
(www) [root@qyi-5e4375265328b www]# pip3 list
Package                   Version  
------------------------- ---------
aliyun-python-sdk-core    2.13.13  
aliyun-python-sdk-core-v3 2.13.11  
aliyun-python-sdk-vod     2.15.8   
appdirs                   1.4.3    
certifi                   2019.9.11
chardet                   3.0.4    
colorama                  0.4.1    
config                    0.4.2    
configparser              3.5.0    
Django                    1.11     
django-ckeditor           5.3.0    
django-haystack           2.8.1    
django-js-asset           0.1.1    
django-suit               2.0a1    
docutils                  0.16     
idna                      2.8      
jieba                     0.42     
jmespath                  0.9.4    
mysqlclient               1.3.10   
olefile                   0.44     
Pillow                    4.1.1    
pip                       20.0.2   
pycryptodome              3.9.4    
pyparsing                 2.2.0    
python-memcached          1.59     
pytz                      2017.2   
qrcode                    6.1      
requests                  2.22.0   
setuptools                45.2.0   
six                       1.10.0   
urllib3                   1.25.6   
wheel                     0.34.2   
Whoosh                    2.7.4    

 

PHP安装报错:

No package 'oniguruma' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables ONIG_CFLAGS
and ONIG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

处理办法:
yum -y install https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-6.9.6-1.el7.remi.x86_64.rpm
yum -y install https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-devel-6.9.6-1.el7.remi.x86_64.rpm
 
 报:mysql_config: command not found
     Could not find a version that satisfies the requirement mysqlclient==1.3.10 

报错:

 File "/root/.local/share/virtualenvs/www-r_bj_E01/lib/python3.7/site-packages/django/contrib/admin/widgets.py", line 151
    '%s=%s' % (k, v) for k, v in params.items(),

处理办法:

vim /root/.local/share/virtualenvs/www-r_bj_E01/lib/python3.7/site-packages/django/contrib/admin/widgets.py

找到对应的虚拟环境,151行把 最后面,去了

 

处理办法:

yum -y install MySQL-python
yum install mysql-devel

 

三.zkey的安装

需要php5.6安装,相关编译参数

#依赖包安装
yum install -y libxml2 libxml2-devel libicu libicu-devel openldap openldap-devel libjpeg libjpeg-devel

#编译
tar fxz php-5.6.19.tar.gz
cd php-5.6.19

./configure --prefix=/usr/local/php\
 --with-libdir=lib64\
 --enable-fpm\
 --with-fpm-user=www\
 --with-fpm-group=www\
 --enable-mysqlnd\
 --with-mysql=mysqlnd\
 --with-mysqli=mysqlnd\
 --with-pdo-mysql=mysqlnd\
 --enable-opcache\
 --enable-pcntl\
 --enable-mbstring\
 --enable-soap\
 --enable-zip\
 --enable-calendar\
 --enable-bcmath\
 --enable-exif\
 --enable-ftp\
 --enable-intl\
 --with-openssl\
 --with-zlib\
 --with-curl\
 --with-gd\
 --with-zlib-dir=/usr/lib\
 --with-png-dir=/usr/lib\
 --with-jpeg-dir=/usr/lib\
 --with-gettext\
 --with-mhash\
 --with-ldap

make
make install

#php配置文件
cp php.ini-production /usr/local/php/etc/

#启动配置文件
cp /usr/local/php/etc/php-fpm.conf.default  /usr/local/php/etc/php-fpm.conf

#启动脚本
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

#启动
/etc/init.d/php-fpm start

 

四.redis的安装

  1. 安装 Redis
# 编译安装
wget http://download.redis.io/releases/redis-3.2.9.tar.gz
tar xzf redis-3.2.9.tar.gz
cd redis-3.2.9 && make
# 修改密码
sed -i 's/# requirepass foobared/requirepass 自己的密码/' redis.conf
# 修改为守护线程的方式启动
sed -i 's/daemonize no/daemonize yes/' redis.conf
  1. 测试 Redis
# 二进制文件是编译完成后在src目录下,通过下面的命令启动Redis服务:
src/redis-server ./redis.conf
# 你可以使用内置的客户端命令redis-cli进行使用:
src/redis-cli
# 验证权限
redis>auth 自己的密码
# 存储key、值
redis>set foo bar
    OK
# 获取
redis>get foo
    "bar"
# 退出
redis>exit
  1. PHP Redis 扩展。Redis 扩展地址:https://github.com/phpredis/phpredis/
# 安装php-redis扩展 
wget http://pecl.php.net/get/redis-3.1.2.tgz
tar xzf redis-3.1.2.tgz 
cd redis-3.1.2/
phpize

# 这里的--with-php-config路径 根据自己实际情况而定
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
# 出现以下信息 即为安装成功
Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
  1. 添加 extension=redis.so 到 php.ini 文件中
# php.ini文件结尾添加 extension=redis.so
sed -i '$a extension=redis.so' /usr/local/php/etc/php.ini
# 查看扩展是否安装完成
php -m|grep redis
# 如有输出即安装完成, 重启php+nginx服务

 

 

 

报错:FastCGI sent in stderr: “Primary script unknown”

处理:删除掉zkey文件夹下面的.user.ini

 

php5.6编译参数:

/configure --prefix=/application/php5.6.30\
 --with-libdir=lib64\
 --enable-fpm\
 --with-fpm-user=www\
 --with-fpm-group=www\
 --enable-mysqlnd\
 --with-mysql=mysqlnd\
 --with-mysqli=mysqlnd\
 --with-pdo-mysql=mysqlnd\
 --enable-opcache\
 --enable-pcntl\
 --enable-mbstring\
 --enable-soap\
 --enable-zip\
 --enable-calendar\
 --enable-bcmath\
 --enable-exif\
 --enable-ftp\
 --enable-intl\
 --with-openssl\
 --with-zlib\
 --with-curl\
 --with-gd\
 --with-zlib-dir=/usr/lib\
 --with-png-dir=/usr/lib\
 --with-jpeg-dir=/usr/lib\
  --with-freetype-dir=/application/freetype/\
 --with-gettext\
 --with-mhash\
 --with-ldap
 
 
 cp sapi/fpm/init.d.php-fpm /etc/init.d/php5.6-fpm

 

 

0
0

评论提问