sys.path.append在Flask中导致500错误

时间:2018-05-09 20:28:39

标签: python flask

当我使用sys.path.append导入文件时,我有一个烧瓶应用程序给我500(' path / to / file.py)

这是我的文件,位于/var/www/html/ip.py,该烧瓶正在调用:

import sys
sys.path.append('/auto/conf/') 
from config import config  

server_username = config['server_username']
server_password = config['server_prod_password']

def check_ip(ip_addr):
    return "test"

这是我的/auto/conf/config.py:

import os
import ConfigParser

# Define names of dir and file
CRED_DIR = 'cred'
FILE_NAME = 'cred.conf'

# Path to cred file
my_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
cred_dir = os.path.join(my_dir, CRED_DIR)
file_path = os.path.join(cred_dir, FILE_NAME)

# Load the conf file with ConfigParser
config = ConfigParser.SafeConfigParser()
config.read(file_path)


# Build a config dictionary
config = {
    'server_username': config.get('server', 'username'),
    'server_password': config.get('server', 'password'),
    }

和cred.conf位于/auto/cred/cred.conf并包含服务器信息。

现在,问题就出现了。如果我运行python ip.py,它运行正常。我添加了print语句,它正在获取正确的服务器用户名和密码。但是当我通过Flask运行时,它会给我500个错误。

以下是我尝试过的一些事情:

- 如果我在配置导入配置中注释掉#34;"来自ip.py,Flask运行返回" test"意思是有效的。它不会得到服务器un和pw,但至少它不是500。

- 如果我将cred.conf和config.py移动到与ip.py相同的目录并注释掉" sys.path.append(' / auto / conf /')& #34;并取消注释"从配置导入配置",Flask工作。

为什么会发生这种想法?我在想Flask不喜欢sys.path.append。我可以使用任何替代方案,以便Flask工作吗?

编辑:

我将ip.py更改为:

import sys
sys.path.append('/auto/conf/') 
import config

并删除了config.py中的所有代码,它仍然让我错误。如果我注释掉"导入配置",Flask工作。绝对不喜欢以这种方式进口..

0 个答案:

没有答案