单个cmd.exe会话的临时文件关联

ana*_*nik 9 python windows file-association

我需要为.py文件设置关联以使用特定的python版本执行.但我需要仅为单个cmd.exe会话建立此关联(并行会话不应受影响).Windows是否允许这样做?

我怀疑答案是否定的,但是我希望看到一些证据,然后再将这个功能转化为virtualenv.

Pio*_*ost 8

你当然可以.您对雅各布答案的评论非常接近 -

如果可以更改文件与环境变量的关联 - 它会有所帮助,但似乎不可能.

有可能的.您所要做的就是REG_EXPAND_SZ在键的值中使用注册表键和环境变量的类型.例如,将 key
%python_home%\python %1 %*
作为(Default)
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Python.File\shell\open\command
并设置其值REG_EXPAND_SZ可以定义将打开Python文件的Python.您可以通过设置python_home环境变量来决定,当然也可以按命令行会话执行此操作.看看我对Windows存储在注册表中的问题的答案,用哪个程序打开某些文件类型?

说过现在有一个特殊的工具来解决这个问题,我强烈推荐.它被称为pylauncher.来自文档:

适用于Windows的PEP 397兼容启动器.有关PEP的信息, 请 访问http://www.python.org/dev/peps/pep-0397/,http://www.red-dove.com/screencasts/launcher/launcher.html进行截屏

如果将其添加到PATHEXT环境变量,您甚至可以跳过.py扩展名.请参阅问题从命令行调用EXE时将使用哪些环境变量?

  • 这非常有效.我相信以这种方式设置你的环境很重要,否则你可能会通过调用错误的解释器python实例而没有注意到而得出错误的结论.这就是我做的方法*设置一个空的virtaulenv ENV*有VIRTUAL_ENV系统env var指向它*根据VIRTUAL_ENV`regin添加HKEY_CLASSES_ROOT\Python.File\shell\open\command/ve/t将关联更改为相对REG_EXPAND_SZ/d"\"%VIRTUAL_ENV%\ Scripts\python.exe \"\"%1 \"%*"`*激活环境,更改VIRTUAL_ENV的值 (2认同)