【问题标题】:How to Pre-load Python Modules in Python IDLE on Startup?如何在启动时在 Python IDLE 中预加载 Python 模块?
【发布时间】:2023-04-01 03:58:01
【问题描述】:

我在 Windows 7 上。当我启动 Python IDLE 时,我希望它预加载:pandasnumpymatplotlib,而无需输入导入语句.我经常导入它们。

我已经浏览了几个帖子:

This one has to do with iPython, not IDLE-specific

This one has to do with running a script in IDLE

This one talks about PYTHONSTARTUP for interactive sessions

从这些帖子中,我确定 Windows 命令提示符 python 交互式 shell 和 IDLE 的交互式 shell 之间存在明显差异。

比如我创建了defaultimports.py,放在这个位置:

C:\Python34\Lib\site-packages\jaradspythonstartup

该脚本包含以下内容:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
print('pd, np and plt imported')

接下来,在我的机器上,我转到Start > Computer > 右键单击​​Properties > Advanced system settings > environment variables > 单击New... 并添加了一个新的variable,名为PYTHONSTARTUP ,然后把我的pathC:\Python34\Lib\site-packages\jaradspythonstartup\defaultimports.py

但是,当我打开命令提示符并键入 python 时,这似乎只在 Windows 命令提示符下有效。我确实看到它加载了我的打印语句。

当我启动 IDLE 时,我没有看到消息:pd, np, and plt imported print 语句。在 IDLE 中,如果我 import osos.environ['PYTHONSTARTUP'],我确实看到我的环境变量已定义但不知道这是否重要。

Python 3.4.2 (v3.4.2:ab2c023a9432, Oct  6 2014, 22:15:05) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import os
>>> os.environ['PYTHONSTARTUP']
'C:\\Python34\\Lib\\site-packages\\jaradspythonstartup\\defaultimports.py'
>>> 

我的问题

如何在启动时在 IDLE 中预加载模块?

【问题讨论】:

  • 我认为您可以通过在路径中的某处添加 sitecustomize.py 文件来实现这一点。

标签: python shell python-idle


【解决方案1】:

python -m idlelib -h 在命令行上,python 运行最近的 3.x,将显示 IDLE 的启动命令;对 2.x 使用 idlelib.idle。它说

idle idlelib -s "在其他任何事情之前运行 $IDLESTARTUP 或 $PYTHONSTARTUP"。

如果这不起作用,请尝试python -m idlelib -s

目前,当您重新启动 shell(当您从编辑器运行文件时会发生这种情况)时,...STARTUP 不会重新运行。我希望能解决这个问题。

编辑:如何使用来自桌面而不是命令行的参数启动 IDLE。

  1. 制作一个正确标记的空闲桌面图标。转到开始菜单 > Python x.y > IDLE... 并复制到桌面。控制鼠标左键拖动或(至少是 Win 7)右键单击,发送到 > 桌面(创建快捷方式)。如果是 3.4 之前的 Python,请右键单击图标,选择重命名,并标上版本号。 (我们最近收到投诉“我安装了 3.5 并且(预先存在的)桌面图标打开了 2.7。)。

  2. 使用参数使图标打开 IDLE。右键单击图标,选择属性,单击结束(您可能必须先单击框,也可能不必先单击框)。光标应该在...pythonw.exe...idlew.py 的行尾。空格并添加参数。我试过-c "print('hello')" 来测试。为 ...STARTUP 添加-s。考虑重命名以表示添加,例如 IDLE 3.5 64 bit STARTUP,以防您需要另一个空闲桌面图标。

【讨论】:

  • 感谢这些提示。我以前不知道这些功能中的任何一个。来自命令提示符的python -m idlelib -s 确实启动了 IDLE 并按照我的希望导入了模块。这种方法虽然需要我打开命令提示符来启动 IDLE,这不是我的典型工作流程。我真正想弄清楚的是......当我单击任务栏或桌面上的 IDLE 快捷方式时,当 IDLE 启动时,我希望它在启动时也加载特定的模块。我想出的一种解决方案是将 jarad\defaults.py 变成一个模块并导入它。一次导入而不是 3 个
  • 我确定可以编辑桌面图标的目标以包含启动参数。见编辑。
  • 如果我理解正确,您的步骤概要是 1. 将 Python IDLE 的快捷方式添加到桌面。 2.右键单击>属性>在“开始于:”中,添加命令行参数。在我将快捷方式添加到我的桌面并转到属性后,'Start in:' 显示 C:\Python34`. When I change it to C:\Python34\ -s` > Apply > OK,然后重新打开它,它看起来像这样:"C:\Python34\ -s"。当我尝试将其更改为"C:\Python34\" -s 时,它会将其更改为""C:\Python34\" -s"。我也用C:\Python34\Lib\idlelib\idle.py 尝试过同样的过程。有什么建议在“开始于:”中到底应该放什么?
  • 编辑名为 target 的框。它相当于一个命令行('start idlew.py with pythonw.exe'),这是添加参数的地方。 Start in 是目录。对于我的图标,这是空白的,应该留空。
  • 知道了!我认为您上面的第 1 步是令人困惑的部分,因为我要开始 > 所有程序 > Python 3.4 > IDLE 并将该快捷方式添加到桌面,这使快捷方式目标文本字段保持灰色。我现在所做的是转到C:\Python34\Lib\idlelib\idle.pyw 并将其添加为桌面的快捷方式。然后右击图标>属性>我现在可以编辑Target:并输入C:\Python34\Lib\idlelib\idle.pyw -s。当我现在运行它时,我的打印消息会加载pd, np and plt imported!非常感谢特里·简·里迪。不知道你可以为图标添加参数!
猜你喜欢
  • 2011-09-08
  • 2011-04-29
  • 1970-01-01
  • 2013-11-10
  • 2010-09-16
  • 1970-01-01
  • 2019-05-10
  • 2015-07-21
  • 1970-01-01
相关资源
最近更新 更多