- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经在我的 C# 应用程序中成功实现了 IronPython。我将所有脚本存储在数据库中,并在需要时加载它们。现在我想用 PTVS 调试我的 Python 代码。但是当我尝试将远程调试器连接到我的应用程序时,visual studio 总是说我应该使用 ptvsd.enable_attach()
。
我想不出这一点并尝试了很多,但没有任何效果。
编辑:我可以弄清楚如何使用 ptvsd,我必须“包含”ptvsd 模块:
//copied from: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Python Tools for Visual Studio\2.0
string dir = Path.GetDirectoryName("C:\\Support\\Modules\\ptvsd");
ICollection<string> paths = myScriptEngine.GetSearchPaths();
if (dir != null && dir != "")
{
paths.Add(dir);
}
else
{
paths.Add(Environment.CurrentDirectory);
}
但是现在我在 os.py 中得到一个错误:
global name 'statvfs_result' is not defined
行内:
_copy_reg.pickle(statvfs_result, _pickle_statvfs_result,
_make_statvfs_result)
编辑 2:似乎我可以忽略带有全局名称的错误消息。但现在我收到以下消息:
IronPython must be started with -X:Tracing and -X:Frames options to support PTVS remote debugging.
编辑 3:我使用以下代码解决了 Tracing and Frames 的错误:
Dictionary<string, object> options = new Dictionary<string, object>();
options["Debug"] = true;
options["Tracing"] = true;
options["Frames"] = true;
myScriptEngine = Python.CreateEngine(options);
但现在我遇到了下一个问题,我无法将 visual studio 附加到我的应用程序,我总是收到以下错误消息:
Could not connect to remote Python process at 'localhost:5678'. Make sure that the process is running, and has called ptvsd.enable_attach()-
编辑 4:我的 python 代码:
# -----------------------------------------------
# Framework-Root-Script
# This script is the main-framework script
# Autor: BE
# Date: 07.10.2013
# -----------------------------------------------
# --------------------------------------------
import sys
#import atexit
import ptvsd
ptvsd.enable_attach(None)
#ptvsd.wait_for_attach()
#
from System import *
from System.Windows import MessageBox
from System.Windows.Controls import Grid, MenuItem
from ESS.MS.Base import GlobalSettings
from ESS.MS.Framework.Core.TaskbarNotification import TaskbarNotificationManager
from ESS.MS.Framework.UIG.Mask import DynamicMaskManager
# --------------------------------------------
# --------------------------------------------
#<summary>
#Eine Instanz dieser Klasse wird automatisch mit
#dem Start des DocCenter Studios erstellt.
#</summary>
class StudioInstance:
# --------------------------------------------
# Declarations
# --------------------------------------------
# --------------------------------------------
# Constructor
def __init__(self):
pass
# --------------------------------------------
# --------------------------------------------
# Will be called before the Login-Window open
def BeforeUserLogin(self):
try:
pass
except:
pass
# --------------------------------------------
# --------------------------------------------
#<summary>
#Wird ausgeführt, wenn der Login für einen Benutzer
# Fehlschlägt
#</summary>
#<param Name="InputUserName">Eingegeber Benutzername</param>
#<param Name="InputDomain">Eingegebene Domain<param>
def LoginFailed(self, InputUserName, InputDomain):
try:
pass
except:
pass
# --------------------------------------------
# --------------------------------------------
# Will be called if the Login-Process is complete
def LoginComplete(self, UserName, Domain):
try:
# -------------------------------------------------------------------
# Control auf das Tray-Icon setzten (Linksklick)
# Mask = DynamicMaskManager.Singleton.GetMaskInstance("Win_DCC_Bediener", False)
# grid = Grid()
# grid.Children.Add(Mask.VisualElement)
# TaskbarNotificationManager.Singleton.AddTrayPopupControl(grid)
# -------------------------------------------------------------------
# -------------------------------------------------------------------
# Context-Menu einttrag auf das Tray-Icon setzten
# test = MenuItem()
# test.Header = "Hallo Welt"
# TaskbarNotificationManager.Singleton.AddContextMenuItem(test)
# -------------------------------------------------------------------
pass
except Exception, e:
MessageBox.Show(e.ToString())
# --------------------------------------------
# --------------------------------------------
# Will be called synchron with the UI (same thread)
def SyncUpdate(self):
try:
pass
except Exception, e:
MessageBox.Show(e.ToString())
# --------------------------------------------
# --------------------------------------------
# Will be called in a custom thread
def AsyncUpdate(self):
try:
pass
except:
pass
# --------------------------------------------
# --------------------------------------------
编辑 5我想我现在可以附加到流程中。但是当我在 visual studio 调试器窗口中单击刷新按钮时,visual studio 挂断并且程序不再有反应。
刷新按钮:
也许有人可以阻止我,谢谢!
最佳答案
假设进程在 localhost
上运行并且您调用了 ptvsd.enable_attach()
,这可能是防火墙问题。您可能需要调整 Windows 防火墙以允许连接到该端口(我认为始终允许本地主机连接,但我不确定)。
关于c# - 使用 PTVS 进行 IronPython 远程调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22336460/
我使用“conda env create -n TestOne”创建了一个新的 anaconda 环境,它创建了一个没有安装任何软件包的新 Python 3.5 环境。 我将 PTVS 与 Visua
当我使用 Python 进行开发时,我经常想要调试特定的方法,在这种情况下,从交互式控制台调用该方法或调试交互式控制台是有意义的。但是,当从 PTVS 中的交互窗口调用某个方法时,它不会在该方法中的断
带有 l&g PTVS 的 VS2015 看起来很棒。 但任何重要项目在调试器 (F5) 下的运行速度比没有调试器 (Ctrl-F5) 慢 20-50 倍,这使得它完全无法用于调试。 知道为什么吗?有
我想为 Visual Studio 10 安装 PTVS。每次我运行名为“PTVS 2.0 VS 2010”的 msi 包时,都会显示一条错误消息,提示我必须先安装 VS2010,但我已经安装了 VS
我正在使用 visual studio 2013 和 visual studio 的 python 工具。 在设置项目时,我已经开始添加到标准 VS .gitignore,因为它不包括工具。我的环境文
我刚刚将 Flask 项目从一台机器复制到另一台机器。我在两台机器上安装了相同版本的Python。当我在新机器上加载项目时,它说我的虚拟环境不可用。因此,我最初尝试从requirements.txt
在带有 PTVS 的 Visual Studio 中,我有两个独立的 Python 项目,一个包含一个名为 lib.py 的 Python 源文件,用作函数库,另一个是使用库中函数的 main。我在
我想附加到另一个程序 (.exe) 调用的 python 脚本。 我正在开发 python 脚本。 现在,我正在使用 (Python 2.7) raw_input("Press Enter to co
我已经在我的 C# 应用程序中成功实现了 IronPython。我将所有脚本存储在数据库中,并在需要时加载它们。现在我想用 PTVS 调试我的 Python 代码。但是当我尝试将远程调试器连接到我的应
对于“嵌入”python的应用程序,PTVS插件是否可以用于混合模式调试?更具体地说,我们假设有一个名为“my_executable”的可执行文件(用 C/C++ 编写)可以从命令行运行,并且可以选择
我可以直接使用 PTVS(Visual Studio 的 Python 工具)为我的模块创建“Python 分发版”吗?我在使用命令行但未使用 PTVS 之前完成了此操作。如果是,如何?谢谢! 最佳答
我想使用 PTVS(适用于 Visual Studio 的 Python 工具)开发一个应用程序,我下载了适用于 Visual Studio 2012 的 PTVS 插件和 IronPython,它运
我正在使用适用于 Visual Studio 的 Python 工具,我已经设置了一个具有虚拟环境的项目并在那里安装了 Flask-RESTful。 然后,我只是复制了他们的hello world e
我从网络开发和Python开始,所以也许我问了一些愚蠢的事情,但无论如何。在 PTVS 中只有 Django Web 项目,但是我想使用 PEP-0333 中定义的准系统 WSGI Python We
我正在尝试从 Pycharm 切换到 Visual Studio 2013 (PTVS),但是我找不到如何更改自动完成弹出窗口的设置。例如,在 Pycharm 中,每当您开始写东西时,它都会自动为您提
我正在按照此处找到的教程进行操作:http://www.windowsazure.com/en-us/documentation/articles/cloud-services-web-sites-p
强文本我重新安装了 VS 2015 更新 3 (来自 Web 安装)带有 Python 工具,但 Python 工具似乎不再起作用。从 ActivityLog.xml 中,错误是: 494 2016/
IronPython 发行版中包含的适用于 Visual Studio 的 Python 工具和适用于 Visual Studio 的 IronPython 工具之间有什么区别?如果有区别,他们可以一
我已将 PTVS 集成到 Visual Studio 中,这样我就可以获得智能感知支持和调试功能。 我在函数定义处设置了断点,但是当我调试时,控件直接失效。在某些时候,控制台窗口会弹出,但它永远不会迭
几周前我安装了 VS 2010 版本,并且运行完美。对于 VS 2012 的版本,我的运气不是很好。我做错了什么?我按顺序运行了 Microsoft 的两个安装程序,“vs_isoshell.exe”
我是一名优秀的程序员,十分优秀!