gpt4 book ai didi

python + Django : unable to find module with Popen

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:10 26 4
gpt4 key购买 nike

我在其中一个 View 中使用了 subprocess.Popen:

path = os.path.join(os.path.dirname(__file__), 'foo/bar.py')
subprocess.Popen(["python",path])

在我的 wsgi 文件中,我有

import os
import sys

ppath = '/home/socialsense/ss/src'
if ppath not in sys.path:
sys.path.append(ppath)

os.environ['DJANGO_SETTINGS_MODULE'] = 'ss.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

src下我有ss,我的django项目。

但是当我检查我的日志文件时,bar.py 遇到了一个错误,ImportError: No module named ss.discovery.models。现在看来,当使用 Popen 时,模块 ss 本身不在 sys.path 中......

我在这里做错了什么吗?

最佳答案

它只会在当前 Python 实例的 sys.path 中。要为另一个获取它,请将 env 参数用于 Popenos.pathsep:

import subprocess
import os
import sys
subprocess.Popen(["python",path], env = {'PYTHONPATH': os.pathsep.join(sys.path)})

你真的应该看看 multiprocessing module用于运行多个 Python 实例。

编辑:@Graham 在评论中指出,您可能希望使用与调用它的版本不同的 Python 版本运行此外部脚本。这对我来说听起来不太可能,但如果是这样,你需要大部分 PYTHONPATH 不同才能工作,所以你只需要添加 /home/socialsense/ss/源代码.

关于 python + Django : unable to find module with Popen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7022807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com