正确设计Python项目
我计划进行以下结构的项目:正确设计Python项目,python,module,Python,Module,我计划进行以下结构的项目: ./runme.py ./my_modules/__init__.py ./my_modules/global_imports.py ./my_modules/user_defined_functions.py 想法是将重要变量存储在global\u imports.py中,然后使用从my\u modules.global\u imports*将它们导入runme.py(我知道这样导入模块是一种不好的做法,但我保证只有少数变量的名称不会冲突) 四个问题: globa
./runme.py
./my_modules/__init__.py
./my_modules/global_imports.py
./my_modules/user_defined_functions.py
想法是将重要变量存储在global\u imports.py
中,然后使用从my\u modules.global\u imports*
将它们导入runme.py
(我知道这样导入模块是一种不好的做法,但我保证只有少数变量的名称不会冲突)
四个问题:
global\u imports.py
中包含的两个变量应该是SCRIPT\u PATH
和SCRIPT\u DIR
。我已经尝试了SCRIPT\u PATH=os.PATH.realpath(\uu文件\uu)
和SCRIPT\u DIR=os.PATH.dirname(SCRIPT\u PATH)
,但它为global\u imports.py
返回路径(目录),而不是为runme.py
返回路径(目录)。如何获取runme.py
的路径(目录)global\u imports.py内部,我可能会导入诸如os
和sys
之类的模块。我还需要在runme.py
中导入这些模块。当模块首先从另一个模块导入,然后从主脚本导入,或者反之亦然时,这是否被视为问题
global\u imports.py
导入用户定义的函数.py
?我认为这是不好的行为,我只是好奇而已。
按顺序回答您的问题:
SCRIPT_PATH = '/home/../../my_project/my_modules/global_imports.py'
SCRIPT_DIR = os.path.abspath(os.path.join(SCRIPT_PATH_DIR, os.pardir))
from .global_imports import variable_name
现在为了获得RunMe.Py的目录,我们应该考虑另一个变量:
SCRIPT_PATH_DIR = os.path.dirname(SCRIPT_PATH)
这将为我们提供道路
SCRIPT_PATH_DIR = '/home/../../my_project/my_modules/'
现在,要访问其包含runme.py的父目录,我们可以如下所示:
SCRIPT_PATH = '/home/../../my_project/my_modules/global_imports.py'
SCRIPT_DIR = os.path.abspath(os.path.join(SCRIPT_PATH_DIR, os.pardir))
from .global_imports import variable_name
现在,SCRIPT_DIR给出了runme.py的路径,即:
SCRIPT_DIR = '/home/../../my_project/'
SCRIPT_PATH = '/home/../../my_project/my_modules/global_imports.py'
SCRIPT_DIR = os.path.abspath(os.path.join(SCRIPT_PATH_DIR, os.pardir))
from .global_imports import variable_name
但一般来说,您应该在“/../my_project/”目录中有一个单独的config.py或settings.py文件,该文件应该包含项目中任何地方可能需要使用的所有设置和变量希望这有帮助,如果有不清楚的地方,请发表评论。按顺序回答您的问题:
SCRIPT_PATH = '/home/../../my_project/my_modules/global_imports.py'
SCRIPT_DIR = os.path.abspath(os.path.join(SCRIPT_PATH_DIR, os.pardir))
from .global_imports import variable_name
现在为了获得RunMe.Py的目录,我们应该考虑另一个变量:
SCRIPT_PATH_DIR = os.path.dirname(SCRIPT_PATH)
这将为我们提供道路
SCRIPT_PATH_DIR = '/home/../../my_project/my_modules/'
现在,要访问其包含runme.py的父目录,我们可以如下所示:
SCRIPT_PATH = '/home/../../my_project/my_modules/global_imports.py'
SCRIPT_DIR = os.path.abspath(os.path.join(SCRIPT_PATH_DIR, os.pardir))
from .global_imports import variable_name
现在,SCRIPT_DIR给出了runme.py的路径,即:
SCRIPT_DIR = '/home/../../my_project/'
SCRIPT_PATH = '/home/../../my_project/my_modules/global_imports.py'
SCRIPT_DIR = os.path.abspath(os.path.join(SCRIPT_PATH_DIR, os.pardir))
from .global_imports import variable_name
但一般来说,您应该在“/../my_project/”目录中有一个单独的config.py或settings.py文件,该文件应该包含项目中任何地方可能需要使用的所有设置和变量