从WSL内部调用Windows Python的奇怪行为(Windows上的Bash)

时间:2017-12-19 09:20:22

标签: python windows-subsystem-for-linux

安装WSL后,我的PC上安装了两个python,一个是Windows,另一个是WSL。开发人员声明here您“可以直接从WSL命令行调用Windows二进制文件”,但是,当我尝试调用python.exe文件时,我得到以下奇怪的行为:

show_autocomplete_after_completion.py

如果交互式口译员正在运行,我会得到:

import sublime
import sublime_plugin


class AutoCompleteListener(sublime_plugin.EventListener):
    def on_post_text_command(self, view, command_name, args):
        if command_name in ('commit_completion', 'insert_best_completion'):
            act = view.settings().get('auto_complete_triggers', [])
            scope = view.scope_name(view.sel()[0].begin())
            char = view.substr(view.sel()[0].begin() - 1)
            for trigger in act:
                if sublime.score_selector(scope, trigger['selector']) > 0:
                    if char in trigger['characters']:
                        view.run_command('auto_complete', { 'insert_best_completion': False })
                        break

它就像解释器正在运行,但它没有给我一个提示,它在第一个错误时退出。有趣的是,如果我导航到同一目录并从Windows命令提示符运行python.exe,一切正常。

P.S。:我通过在Python中运行sys.executable命令找到了Windows Python安装的位置。

1 个答案:

答案 0 :(得分:1)

使用-i选项调出交互式解释器。因此运行

python.exe -i

将从WSL中以交互方式启动python的Windows版本。