请教一个问题。在写好的 Python 代码中 到底是咋回事

2018-06-24 19:03:46 +08:00
 lazysoft

是这样的,我是一个 python、初学者。接触到了 flask 一直在学习他,并且用他开发了一个简易的站点,因为太简单了,我就不放出来了。

目前的情况是:我在 windows 服务器中,使用 :apache 以及 flask 和 mod_wsgi 成功的跑起来了( 后来才知道 使用 nginx 也可以和 python 直接部署,心痛。 我可是部署了一晚上。。。)

问题来了,我在服务器中直接装的 python3.6 没有使用虚拟环境。

我一直想不通,虚拟环境,如果我也创建了,并且项目处于虚拟环境目录,但是用户在访问的时候,程序会自动从虚拟环境中的 python 启动吗? 搞不懂啊。。 还是说,需要在代码中特意说明。

现在想要在同一个服务器中,部署另一个项目,使用 nginx 进行了反向代理,(妈呀,又多了一个),但是可能 python 的库需要改变了。我不想影响现在的项目。 但是就是搞不懂 这个虚拟环境。。

希望解答一下。

我只是自学,所以可能描述的不到位,不专业,希望大家理解,

1510 次点击
所在节点    Python
4 条回复
guyskk0x0
2018-06-24 19:08:47 +08:00
用虚拟环境里的 bin/python 运行代码
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 的话,就直接使用了你虚拟环境中的程序了

以上~
H0TSp1RnG
2018-06-25 06:09:28 +08:00
虚拟环境的作用是分离依赖
nbboy
2018-06-25 13:19:39 +08:00
虚拟环境就是完全隔离,其实在 uwsgi 里可以指定 env 的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/465464

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX