sys.path.append вызывает ошибку 500 во Flask - PullRequest
0 голосов
/ 09 мая 2018

У меня есть приложение фляги, которое дает мне 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 работает.Определенно это не любит импортировать таким образом ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...