【问题标题】:Autoimport of modules from IDLE home directory从 IDLE 主目录自动导入模块
【发布时间】:2020-04-16 14:55:34
【问题描述】:

我知道import xfrom x import yyy 之间的the difference,在后一种情况下,可以通过裸名而不是完整规范来处理x 定位的函数,而这正是我想做的,我不想每次都写全名。

我还知道如何在 Windows 上 redefine default Python dir 以便它开始了解我开发的模块,这很好。但是如何将这两件事结合起来呢?

我希望 IDLE 开始了解我所有模块的所有功能,因此我不需要手动导入它们。

from * import * 

即对于 IDLE 主目录中的所有模块?

附:我看到了this question,但是它只为一次导入提供了解决方案,并且不扫描整个目录,而且这个带有快捷参数的解决方案对我来说似乎并不漂亮。

还有更简洁的方法吗?

【问题讨论】:

  • 如何编写一个包含所有标准输入的小型<something>.py 文件。然后你可以在每次开始时做from <something> import *
  • 我应该把这个 <something>.py 放在哪里,以便 IDLE 吃掉它?默认不执行 homedir 脚本

标签: python python-3.x windows python-idle python-windows-bundle


【解决方案1】:

如果您以-r file 开始空闲,它将首先运行文件,或者使用-s,它将首先运行IDLESTARTUPPYTHONSTARTUP 环境变量中列出的文件。然后通过在命令提示符中启动 IDLE 进行测试,例如,py -m idlelib -r file。完成后,您可以在桌面上创建 IDLE 快捷方式(从“开始”菜单拖放),打开“属性”,然后将上述任何一项添加到“目标”的末尾。

【讨论】:

  • 我可以将多个文件放到IDLESTARTUP 变量中吗?这里需要注意的是,我的函数位于不同的 py 文件中,我想将它们全部提供给 IDLE
  • 没有。但正如 FlyingTeller 试图建议的那样,您可以编写一个导入多个文件的文件。
  • 所以 IDLE 运行在 IDLESTARTUP 找到的第一个文件并忽略所有其余文件?它是按字母顺序做的吗?
  • 我不明白这个问题。环境变量是字符串,而不是字符串列表。如果您将-s 传递给IDLE,它将尝试使用字符串给出的名称打开一个文件。相关代码从 idlelib.pyshell 第 1553 行开始。
  • Environmental variables are strings, not lists of strings PATH variable 例如正是您可以放置​​多个路径的字符串列表(或集合),因此是我的问题。如果IDLESTARTUP 不是这种情况,那么好吧,我明白了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-23
  • 2014-08-28
相关资源
最近更新 更多