V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
lazysoft
V2EX  ›  Python

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

  •  
  •   lazysoft · 2018-06-24 19:03:46 +08:00 · 1638 次点击
    这是一个创建于 2380 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    希望解答一下。

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

    guyskk0x0
        1
    guyskk0x0  
       2018-06-24 19:08:47 +08:00 via Android
    用虚拟环境里的 bin/python 运行代码
    knktc
        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 的话,就直接使用了你虚拟环境中的程序了

    以上~
    H0TSp1RnG
        3
    H0TSp1RnG  
       2018-06-25 06:09:28 +08:00
    虚拟环境的作用是分离依赖
    nbboy
        4
    nbboy  
       2018-06-25 13:19:39 +08:00
    虚拟环境就是完全隔离,其实在 uwsgi 里可以指定 env 的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2726 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 14:53 · PVG 22:53 · LAX 06:53 · JFK 09:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.