我有一个脚本可以加载from google.cloud import pubsub
(my_virtual_environment): python script.py
当我像这样运行脚本时
gunicorn
它有效。但是当我通过gunicorn -c gunicorn_config.py script.py
from google.cloud import pubsub
ImportError: No module named cloud
我得到了
sys.path
当我在两种情况下打印sys.path
时,我得到一个案例中的[......., /Users/partuck/.virtualenvs/my_virtual_environment/lib/python2.7/plat-darwin',......]
包含virtualenv路径
gunicorn
而在另一种情况下(通过pip freeze
运行),我看不到它。
运行gunicorn
时,user_controller.ex
defmodule Rumbl.UserController do
use Rumbl.Web, :controller
plug :authenticate_user when action in [:index, :show]
def index(conn, _params) do
users = Repo.all(User)
render conn, "index.html", users: users
end
def show(conn, %{"id" => id}) do
user = Repo.get(Rumbl.User, id)
render conn, "show.html", user: user
end
alias Rumbl.User
def new(conn, _params) do
changeset = User.changeset(%User{})
render conn, "new.html", changeset: changeset
end
存在。
答案 0 :(得分:1)
所以,事实证明,gunicorn默认为以前加载的地方。
我的解决方案是在目录中cd,然后运行gunicorn
命令
cd my_directory
<loads the virtualenv> using auto env # workon my_virtualenv
gunicorn -c gunicorn_config.py script.py