PyCharm中的Python。从其他文件夹导入,但不将文件夹标记为根源

PyCharm中的Python。从其他文件夹导入,但不将文件夹标记为根源,python,pycharm,Python,Pycharm,为了从其他目录导入Python模块,我找到了一种在PyCharm中将这些目录标记为源根目录的方法。它起作用了。 但是当我从命令行运行脚本时,命令行当然不知道PyCharm中的源根,所以有必要对导入的每个文件夹执行sys.path.append。 所以有两个工作:在Pycharm中将目录标记为源根目录,并添加到sys.path以作为脚本运行。 有没有办法避免双重工作?允许从Pycharm和命令行中的不同目录导入模块的任何内容 允许从Pycharm和命令行中的不同目录导入模块的任何内容 您已经在使用

为了从其他目录导入Python模块,我找到了一种在PyCharm中将这些目录标记为源根目录的方法。它起作用了。
但是当我从命令行运行脚本时,命令行当然不知道PyCharm中的源根,所以有必要对导入的每个文件夹执行sys.path.append。
所以有两个工作:在Pycharm中将目录标记为源根目录,并添加到sys.path以作为脚本运行。
有没有办法避免双重工作?允许从Pycharm和命令行中的不同目录导入模块的任何内容

允许从Pycharm和命令行中的不同目录导入模块的任何内容

您已经在使用虚拟环境,对吗?如果您将代码设置为“可安装”,那么,在虚拟环境中“安装”后,无论您在哪个目录中,都可以导入代码。这比调整“sys.path.append”要好得多

为此,您可以编写
setup.py
文件(请参阅),并使用
distutils
包。另一个选项(我认为更容易)是使用创建
pyproject.toml
文件

按照“诗歌路线”,您只需安装一次诗歌,然后就可以运行了

新诗或“诗歌新图书馆” 这将初始化项目结构并创建“pyproject.toml”文件。现在可以根据需要编辑“pyproject.toml”。您还可以使用将依赖项添加到项目中

诗歌添加numpy
诗歌添加——dev mypy
等
现在,当您运行
poyment install
时,它将创建一个虚拟环境,在其中安装依赖项以及您的库。在shell中,您只需激活虚拟环境(使用
poethyshell
),一切都将正常工作。在pycharm中,您只需将项目解释器设置为poetry创建的虚拟环境中的解释器(pycharm还有一个poetry插件)


您还可以使用其他工具来代替我提到的工具,但前提是避免更改
sys.path
,并进行额外的代码打包工作。一旦你学会了它,就不会有太多额外的工作了,而且你还可以获得一些优势,比如轻松地管理依赖项、从任何文件夹导入、用一个命令(如果你愿意)在PyPi中发布代码等等。

你可以使用
PYTHONPATH
环境变量,但是,可能需要组织您的代码,这样您就不需要调整Python可以从中导入的目录。