首页 > 解决方案 > 在 python 中,对于导入,是否有一种简单的方法可以使用大多数操作系统工具、PYcharm 等提供的更常见的路径语法?

问题描述

嗨,我是一名前 C# 开发人员,在这里切换到 python 进行一个新项目,我们希望将机器学习融入其中,因此 python 因为 tensorflow 是黄金标准,并且它首先在 python 中发布。

我刚开始编写我的前几个文件,python 中的目录路径使用所有点真的很有趣。我不太习惯这种语法,我很惊讶 python 选择从更传统的斜杠中改变它。

因此,例如在 Python 中,我发现自己在写:

from package1.subpackage2.subpackage3.subpackage4.module5 import function6

对于每次导入,我都必须复制该语法?

考虑到整个行业通常总是使用斜线来表示路径,这似乎很奇怪。最终有几十个工具并没有给我一些我可以快速迭代的东西。windows中的操作系统给出斜线,mac中的操作系统有多种复制路径的方法,即使mac默认安装了python,它们也都给出斜线!即使从网络服务器或 API 通过文件路径调用时,您也可以使用如下斜杠:

https://stackoverflow.com/questions/ask

或者

F:\Google\Chrome\Application\38.0.2125.111\Locales

真正疯狂的是,鉴于我刚刚学习的这个名为 PYCharm 的特定于 python 的 IDE,即使它是当您选择文件并选择复制路径时使用斜杠进入剪贴板的路径!是什么赋予了?!当然,构建 python 特定 IDE 的人会意识到语法对导入无效并进行设置,以便开发人员可以使用与我们编写它们的方式相匹配的东西。

因此,我已经深入研究并搜索了 stackoverflow 和更广泛的网络,一般都在寻找解决方案,但我没有看到任何简单的东西。甚至 python 文档也没有提到更合适的方法!我希望我只是错过了一些东西。是否有工具可以为我提供正确的 python 路径?或者 python 开发人员是否能够看到这是一个问题,也许他们设置了一个转义字符,我可以使用它来轻松地将所有其他工具中常见的斜杠路径格式化到我的导入中?

标签: python

解决方案


如果您使用的是 pycharm,那么使用 tab-expansion 来构建您的导入路径非常容易,或者 pycharm 的建议是使用自动导入功能。这些是更合适的方法。这些中的任何一个都应该比复制粘贴文件路径然后手动替换斜杠快得多。事实上,你不应该复制粘贴文件路径并将它们修改为导入。

有关 pycharm 自动导入的更多信息: https ://www.jetbrains.com/help/pycharm/creating-and-optimizing-imports.html

这里的关键是包和目录并不总是相同的东西。例如,使用 an__init__.py您可以在包级别定义其他变量,这些变量在项目的文件/目录中的任何其他位置都不存在,或者您可以通过相同的机制将在包级别定义的函数移动到模块级别。如果您在 Python 中使用 tensorflow,则无需将斜杠转换为点,因为您会发现任何示例都将使用点进行导入。

请记住,当您导入时,您并没有真正处理路径。您正在处理可能解析为有效路径的包和模块,但可能不会。而且由于涉及实际文件路径的所有内容都使用斜杠,因此复制粘贴路径当然不会将该路径转换为点。


推荐阅读