У меня есть приложение фляги, которое дает мне 500, когда я импортирую файл с помощью sys.path.append ('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, он работает нормально.Я добавил оператор печати, и он выбирал правильное имя пользователя и пароль для сервера.Но когда я запускаю его через Flask, он выдает ошибку 500.
Вот некоторые из вещей, которые я попробовал:
- Если я закомментирую «из конфига импорта конфигурации» из ip.py, Flask запускает возвращает «test», что означает, что это сработало.Он не получит сервер un и pw, но, по крайней мере, не 500.
- если я переместу cred.conf и config.py в тот же каталог, что и ip.py и закомментирую "sys.path.append ('/ auto / conf /') "и раскомментировать" из конфига импорта конфиг ", Flask работает.
Есть идеи, почему это происходит?Я думаю, что Flask не любит sys.path.append.Есть ли альтернатива, которую я могу использовать, чтобы Flask работал?
Редактировать:
Я изменил ip.py на это:
import sys
sys.path.append('/auto/conf/')
import config
и удалил весь код в config.pyи это все еще дает мне ошибку.Если я закомментирую "импорт конфигурации", Flask работает.Определенно это не любит импортировать таким образом ..