setup_path_on_import: Always make sure zulip-py3-venv is activated.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
This commit is contained in:
Anders Kaseorg 2019-02-07 04:52:12 -08:00 committed by Tim Abbott
parent a45be467ad
commit 9233b3bc75
1 changed files with 7 additions and 10 deletions

View File

@ -5,14 +5,11 @@ Use libraries from a virtualenv (by modifying sys.path) in production.
import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
venv = os.path.join(BASE_DIR, "zulip-py3-venv")
if sys.prefix != venv:
if os.path.basename(sys.prefix) != "zulip-py3-venv":
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
venv = os.path.join(BASE_DIR, "zulip-py3-venv")
activate_this = os.path.join(venv, "bin", "activate_this.py")
# this file will exist in production
if os.path.exists(activate_this):
activate_locals = dict(__file__=activate_this)
exec(open(activate_this).read(), activate_locals)
if not os.path.exists(activate_locals["site_packages"]):
raise RuntimeError(venv + " was not set up for this Python version")
activate_locals = dict(__file__=activate_this)
exec(open(activate_this).read(), activate_locals)
if not os.path.exists(activate_locals["site_packages"]):
raise RuntimeError(venv + " was not set up for this Python version")