是这样的,我是一个 python、初学者。接触到了 flask 一直在学习他,并且用他开发了一个简易的站点,因为太简单了,我就不放出来了。
目前的情况是:我在 windows 服务器中,使用 :apache 以及 flask 和 mod_wsgi 成功的跑起来了( 后来才知道 使用 nginx 也可以和 python 直接部署,心痛。 我可是部署了一晚上。。。)
问题来了,我在服务器中直接装的 python3.6 没有使用虚拟环境。
我一直想不通,虚拟环境,如果我也创建了,并且项目处于虚拟环境目录,但是用户在访问的时候,程序会自动从虚拟环境中的 python 启动吗? 搞不懂啊。。 还是说,需要在代码中特意说明。
现在想要在同一个服务器中,部署另一个项目,使用 nginx 进行了反向代理,(妈呀,又多了一个),但是可能 python 的库需要改变了。我不想影响现在的项目。 但是就是搞不懂 这个虚拟环境。。
希望解答一下。
我只是自学,所以可能描述的不到位,不专业,希望大家理解,
1
guyskk0x0 2018-06-24 19:08:47 +08:00 via Android
用虚拟环境里的 bin/python 运行代码
|
2
knktc 2018-06-24 19:23:10 +08:00
用 venv 的话实际上你的代码不需要做任何的变化,但是我没用过 apache+mod_uwsgi,就只拿 uwsgi 的模式来说明下:
1. 假设你创建了一个 venv,路径是 /home/user/venv 2. 在 venv 里面装了 uwsgi,那么这个在虚拟环境下安装的 uwsgi 的可执行文件路径其实是在 /home/user/venv/bin/uwsgi 3. 顺便在 uwsgi 的配置文件中再指定下 home 参数,参数路径指向你的 venv 目录:/home/user/venv 4. 那么现在使用 /home/user/venv/bin/uwsgi 来启动 uwsgi 的话,就直接使用了你虚拟环境中的程序了 以上~ |
3
H0TSp1RnG 2018-06-25 06:09:28 +08:00
虚拟环境的作用是分离依赖
|
4
nbboy 2018-06-25 13:19:39 +08:00
虚拟环境就是完全隔离,其实在 uwsgi 里可以指定 env 的。
|