我在Windows 7上。当我启动Python IDLE时,我希望它预加载:pandas,numpy和matplotlib,而不必输入import语句。我经常导入它们。
我已经浏览了几个帖子:
这个与iPython有关,而不是IDLE特有的
这个与在IDLE中运行脚本有关
这个讲述了PYTHONSTARTUP用于交互式会话
从这些帖子中,我确定Windows命令提示符python交互式shell和IDLE的交互式shell之间存在明显差异。
例如,我创建了defaultimports.py并将其放在此位置:
C:\Python34\Lib\site-packages\jaradspythonstartup
该脚本包含以下内容:
1
2
3
4import 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...并添加一个名为PYTHONSTARTUP的新variable,然后放入我的path C:\Python34\Lib\site-packages\jaradspythonstartup\defaultimports.py
但是,当我打开命令提示符并键入python时,这似乎只适用于Windows命令提示符。我确实看到它加载了我的print语句。
当我启动IDLE时,我没有看到消息:pd, np, and plt imported print statement。在IDLE中,如果我import os和os.environ['PYTHONSTARTUP'],我确实看到我的环境变量被定义但是不知道这是否重要。
1
2
3
4
5
6Python 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 -m idlelib -h在命令行上,其中python运行最近的3.x,将显示IDLE的启动命令;使用idlelib.idle表示2.x.它说
idle idlelib -s"在其他任何事情之前运行$ IDLESTARTUP或$ PYTHONSTARTUP"。
如果这不起作用,请尝试python -m idlelib -s。
目前,当您重新启动shell时,从编辑器运行文件时会发生这种情况,.... STARTUP不会重新运行。我希望能解决这个问题。
编辑:如何使用桌面而不是命令行的参数启动IDLE。
制作一个贴有标签的IDLE桌面图标。转到"开始"菜单>"Python x.y">"IDLE ..."并复制到"桌面"。控制鼠标左键拖动或(至少赢7)右键单击,发送到>桌面(创建快捷方式)。如果对于3.4之前的Python,右键单击图标,选择重命名,并使用版本号标记。 (我们最近得到了投诉"我安装了3.5和(预先存在的)桌面图标打开2.7。)。
使用参数使图标打开IDLE。右键单击图标,选择属性,单击结束(您可能可能不必先单击框)。光标应位于...pythonw.exe...idlew.py行的末尾。空格并添加参数。我试过-c"print('hello')"进行测试。为...... STARTUP添加-s。如果您想要另一个IDLE桌面图标,请考虑重命名以指示添加,例如IDLE 3.5 64 bit STARTUP。
感谢您提供这些建议。我之前不知道这些功能。命令提示符中的python -m idlelib -s确实启动了IDLE,并按照我的希望导入了模块。这种方法虽然要求我打开命令提示符来启动IDLE,这不是我的典型工作流程。我真正想弄清楚的是......当我点击任务栏或桌面上的IDLE快捷方式时,当IDLE启动时,我希望它也能在启动时加载特定的模块。我提出的一个解决方案是将jarad defaults.py转换为模块并导入它。一次导入而不是3次
我确定可以编辑桌面图标的目标以包含启动参数。见编辑。
如果我理解正确,您的步骤的概要是1.将Python IDLE的快捷方式添加到桌面。 2.在"开始于:"中右键单击>属性>,添加命令行参数。在我向桌面添加快捷方式并转到属性后,启动:显示C:\Python34`. When I change it to C: Python34 -s`>应用>确定,然后再打开它,它看起来像这样:"C:\Python34\ -s"。当我尝试将其更改为"C:\Python34" -s时,它会将其更改为""C:\Python34" -s"。我也用C:\Python34\Lib\idlelib\idle.py尝试了相同的过程。有什么建议准确地放入"开始于:"?
编辑名为target的框。它具有相当于命令行(使用pythonw.exe启动idlew.py),这是添加参数的位置。 Start in是目录。对于我的图标,这是空白的,应该留空。
得到它了!我认为你上面的第一步是令人困惑的部分因为我要开始>所有程序> Python 3.4> IDLE并将该快捷方式添加到桌面,这使得Shortcut Target文本字段变灰。我现在做的是去了C:\Python34\Lib\idlelib\idle.pyw并添加了作为桌面的快捷方式。然后右键单击图标>属性>我现在可以编辑Target:并输入C:\Python34\Lib\idlelib\idle.pyw -s。当我现在运行它时,我的打印消息加载pd, np and plt imported!非常感谢Terry Jan Reedy。不知道你可以为图标添加参数!