我想用pydev在python中做一些脚本。 我遇到的问题是我无法在脚本所在的项目目录中启动控制台,控制台在pydev / aptana文件夹(aptana文件夹中的某个位置)启动。
我可以解决这些问题,将以下代码添加到我的脚本中:
import os
import inspect
filename = inspect.getframeinfo(inspect.currentframe()).filename
curpath = os.path.dirname(os.path.abspath(filename))
os.chdir(curpath)
当通过pydev Ctrl + Alt + Enter 方式?
- 编辑 -
如果有人喜欢它,这是我自己的解决方案:
import sys; print('%s %s' % (sys.executable or sys.platform, sys.version)) import os;os.chdir([p for p in os.environ['PYTHONPATH'].split(os.pathsep) if ('Aptana Workspace' in p)][0]) pwd()
答案 0 :(得分:2)
我使用了一些黑客来使这个工作。如果我理解您的问题,您希望将IPython环境中的当前工作目录设置为活动文件所在的目录。因此,如果您正在编辑D:/projects/file.py,则需要pwd()命令(在IPython中)返回D:/ projects。这是我的解决方案中被黑客攻击的部分来自的地方。我的所有项目都在我的D盘上,但所有正常的python导入都来自我的C盘上的安装位置。以下是:
os.environ['PYTHONPATH'].split(os.pathsep)
会产生一个列表,其中D驱动器上只有一个路径是我的活动文件的目录(因为PyDev将PYTHONPATH设置为包含正确的目录)。如果您不使用D驱动器,那么应该有一些其他独特的方法来识别该列表中的哪些路径与您的项目相关(如文档或我的文档等)。如果没有一种方法可以唯一识别您的项目路径,那么这个答案就不起作用了。但是在“D:/”足够的唯一标识符的简单情况下,这是我在设置中的启动代码(Window> Preferences> PyDev> Interactive Console)
import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))
import os;os.chdir([p for p in os.environ['PYTHONPATH'].split(os.pathsep) if p.startswith("D")][0])
pwd()
答案 1 :(得分:2)
我将以下内容添加到首选项中的预执行脚本 - > PyDev - >交互式控制台 - >初始命令:
import os
import inspect
__old_runfile = runfile
def runfile(file):
curpath = os.path.dirname(os.path.abspath(file))
os.chdir(curpath)
__old_runfile(file)
这会覆盖默认的runfile命令并导致 Ctrl + Alt + Enter 以在加载脚本时更改为脚本目录。< / p>
答案 2 :(得分:0)
我遇到了同样的问题,刚刚找到了另一个解决方案。它与已经提到的类似,但在eclipse / pydev中完全可配置(无需修改脚本)。
import os; os.chdir(os.environ['PROJECT_PATH'])
。(如果您启动“当前正在工作的编辑器的控制台”,它会起作用。)