当我使用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工作。绝对不喜欢以这种方式进口..