php支持大型网站开发吗,南海最新消息,论坛网站建设教程,运城建设银行网站点一、安装Anaconda
使用Anaconda创建python环境的优点#xff1a; virtualenv只能创建系统原有的python版本#xff0c;而不能创建创建任意版本的环境 而Anaconda的虚拟环境中#xff0c;你可以指定任意现存可使用的python环境#xff08;包括比原环境版本高的python版本 virtualenv只能创建系统原有的python版本而不能创建创建任意版本的环境 而Anaconda的虚拟环境中你可以指定任意现存可使用的python环境包括比原环境版本高的python版本这对于不断迭代更新的python来说非常的友好
1、下载Anaconda
Anaconda官网地址如下 https://www.anaconda.com/download 官网历史版本下载网址 https://repo.anaconda.com/archive/ 在历史版本中选择符合自己要求的版本比如我这里选择的最新的版本Anaconda3-2023.09-0-Linux-x86_64.sh
在服务器上指定一个下载目录进入该目录下输入命令下载 wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh 如果出现下载错误提示wget: command not found
是因为你还没有wget下载文件工具具体解决办法如下: Debian/Ubuntu系统apt-get install -y wget CentOS系统yum install wget -y 然后重复执行命令 wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh 下载完成之后在下载目录输入 ls 命令会出现以下画面
2、安装Anaconda
首先为刚才下载的Anaconda3-2023.09-0-Linux-x86_64.sh文件赋权否则文件会执行不了 chmod x Anaconda3-2023.09-0-Linux-x86_64.sh 然后执行 ./Anaconda3-2023.09-0-Linux-x86_64.sh 接下来会出现让你按Enter键继续的提示我们按Enter键继续 然后会出现阅读Anaconda的信息并且会出现More继续按Enter直至阅读完成信息 出现以下画面输入yes 继续点击 Enter会出现以下提示输入 yes添加环境变量
installation finished
DO you wish the installer to prepend the Anaconda3 install Location
to PATH in your /home/xxxx/ .bashrc ? 【yes | no ]
[no] yes
Appending source /hone/xxx/ anaconda3/bin/activate to /home/xxx/ bashr
A backup will be made to: /home/xxx/ bashrc anaconda3 bak
For this change to become active, you have to open a new terminal.
Thank you for installing Anaconda3!
到这一步Anaconda就算安装完成了输出Anaconda版本检测一下是否成功 conda -V 如果顺利出现版本号 那么就算成功了但是如果提示 那可能是最后一步添加环境变量没有成功我们需要手动添加 输入命令 vim ~/.bashrc 在文件最后一行输入 export PATH$PATH:你anaconda安装的目录/anaconda3/bin: $PATH 如我的anaconda安装在root目录所以我这里输入的是 export PATH$PATH:~/anaconda3/anaconda3/bin: $PATH 然后再进行测试 conda -V 二、使用anaconda创建虚拟环境
创建虚拟环境命令其中xxx为你的虚拟环境的名称一般为项目名称python后面跟的是你指定的虚拟环境的python版本号这个版本要是现存的可使用的版本否则会报错 conda create -n xxx python3.11.4 创建后可以使用下面这条命令查看虚拟环境是否创建成功并且查看该环境的位置 conda info --envs 下面这些命令是以后你可能会用到的操作虚拟环境的命令 conda activate xxx //切换到xxx该虚拟环境命令(如果该命令报错可以使用source activate xxx ) conda remove --name xxx --all //删除xxx虚拟环境命令 conda deactivate //退出虚拟环境 三、操作Django项目
1、创建uwsgi.ini文件
该文件的位置与manage.py文件同级 文件内容 全面的配置可以参考官方文档 我这里就写我用到的
[uwsgi]# 使用nginx链接时使用
# socket127.0.0.1:8000# 直接做web服务器使用
http0.0.0.0:8858 #填入你自己的端口# 项目目录 [不需要引号]
chdir /opt/myproject #这里写你的项目将放到服务器哪里具体位置#进程信息文件路径这里指项目的根目录在项目启动的时候会自己创建这里只指定路径
pidfile%(chdir)/uwsgi.pid# 指定启动的工作进程数
processes3# 指定工作进程中的线程数
threads2# 进程中有一个主进程
masterTrue#日志文件路径前提是该文件要存在且可写可以直接在django项目中创建log文件夹在该文件夹中创建error.log 文件将项目放到服务器上后指定路径daemonize /opt/myproject/myproject/log/error.log #表示不记录正常信息只记录错误信息否则你的日志可能很快就爆满
disable-logging true#项目的对接wsgi.py文件
module 你的项目名.wsgi:application#当服务器退出的时候自动清理环境
vacuum true# 设置虚拟环境的路径 [cd .virtualenvs]
virtualenvxxxxx #这里的路径需要使用conda info --envs查看你服务器创建的虚拟环境位置# 静态文件存储路径 不加admin静态资源访问不了
static-map/static//opt/myproject/static2、生成requirements.txt文件
requirements.txt文件里面记载的是你这个项目中所使用的依赖及版本
下面这条命令在项目目录下执行会将当前环境的所有依赖全部写到requirements.txt文件其中包含很多冗余依赖可用但不推荐 pip freeze requirements.txt 下面这条命令在项目目录下执行会将当前django项目的import的依赖写到requirements.txt文件不会冗余推荐使用。 pipreqs ./ --encodingutf-8 --force 备注 1.pipreqs命令使用时可能会报该模块不存在使用pip安装即可安装命令pip install pipreqs
2.pipreqs命令写入的依赖可能不全需要手动写入依赖或者改版本
pip install -r requirements.txt 该命令即将依赖安装
3、修改setting文件
加入这两句为静态文件指定位置 STATIC_URL ‘static/’ STATIC_ROOT os.path.join(BASE_DIR, ‘/static/’) 3、将项目无用文件夹删除 venv文件夹是Python 项目中的虚拟环境目录在服务器中已经存在了删除
4、检查
检查数据库、配置等是否已经根据上线需要更改
5、将项目放上服务器
使用Xftp将项目文件放到服务器指定位置或使用其他方式进行传输
四、安装uwsgi
在原环境注意这里不是虚拟环境下是原环境依次输入以下命令进行操作 anaconda search -t conda uwsgi anaconda show conda-forge/uwsgi conda install --channel https://conda.anaconda.org/conda-forge uwsgi 五、启动
切换到虚拟环境 conda activate xxx 或 source activate xxx 切换到django项目目录下依次执行 python manage.py makemigrations python manage.py migrate python manage.py createsuperuser //创建超级管理员 python manage.py collectstatic //将静态文件copy到我们在uwsgi.ini文件中设置的静态文件存储路径中 启动 uwsgi --ini uwsgi_soc.ini 退出命令 uwsgi --stop uwsgi.pid切换到uwsgi.pid文件目录下 强制杀死uwsgi进程 sudo pkill -f uwsgi -9 查看uwsgi进程 ps -ef|grep uwsgi 六、报错
可能出现的报错
1、启动没有问题但是访问网页报500错误
这个时候我们就可以查看我们创建的error.log文件打开如果出现下面的错误:
Traceback (most recent call last):File /opt/myproject/myproject/wsgi.py, line 12, in modulefrom django.core.wsgi import get_wsgi_applicationFile /root/anaconda3/envs/xxx/lib/python3.11/site-packages/django/__init__.py, line 1, in modulefrom django.utils.version import get_versionFile /root/anaconda3/envs/xxx/lib/python3.11/site-packages/django/utils/version.py, line 1, in moduleimport datetimeFile /root/anaconda3/envs/xxx/lib/python3.11/datetime.py, line 12, in moduleimport math as _math
ImportError: /root/anaconda3/envs/lottery/lib/python3.11/lib-dynload/math.cpython-311-x86_64-linux-gnu.so: undefined symbol: _PyModule_Add
unable to load app 0 (mountpoint) (callable not found or import error)
*** no app loaded. going in full dynamic mode ***
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 43924)
spawned uWSGI worker 1 (pid: 43925, cores: 1)
spawned uWSGI worker 2 (pid: 43926, cores: 1)
spawned uWSGI worker 3 (pid: 43927, cores: 1)
spawned uWSGI http 1 (pid: 43928)
--- no python application found, check your startup logs for errors ---
--- no python application found, check your startup logs for errors ---
--- no python application found, check your startup logs for errors ---
--- no python application found, check your startup logs for errors ---
是因为你没有在原环境执行安装uwsgi的命令而是在虚拟环境安装的 或者使用的是pip install uwsgi命令 解决办法查看uwsgianacondadjango启动问题的坑
2、执行启动uwsgi命令报错
可能是你没有在uwsgi.ini文件目录下执行切换个目录试一下
七、前端项目部署
如果不想使用nginx的话并且项目比较小可以直接将前端项目打包之后放到django项目的static文件夹中启动uwsgi就可以直接通过ip//static/dist/index.html访问了