今天快点:我正在学习Pythons distutils库的内外版本,我想在我的包中加入一个python扩展模块(.pyd).我当然知道推荐的方法是让distutils在创建包时编译扩展,但这是一个相当复杂的扩展,涵盖了许多源文件并引用了几个外部库,所以它需要一些重要的播放来获取所有内容工作正常.
与此同时,我有一个已知的工作版本的扩展来自Visual Studio,并希望在安装程序中使用它作为临时解决方案,让我专注于其他问题.但是,我无法将其指定为模块,因为那些显然必须具有明确的.py扩展名.我怎么能在setup.py中指出我想要包含一个预编译的扩展模块?
(Python 3.1,如果重要的话)
我有点惊讶我不知道这一点,但承认你还在学习:)从来没有伤害过:)
在GLSL有min和max函数,根据他们的文档:
返回两个值中较小/较大的值
但是,当值是向量时,如何确定?很明显(1, 1)会少于(2, 2),但什么是最小或最大的(1, 3)和(4, -2)?这种逻辑在哪里正式描述?
我的Chrome扩展程序带有浏览器操作,试图模仿其他应用的视觉风格.此样式的一部分是页眉和页脚,它扩展到应用程序的边缘.问题是浏览器动作弹出窗口包含一个小边距和默认的圆形边框,看起来硬编码显示为空白区域.
如果有某种方法可以删除此边距或强制我的内容能够一直延伸到边缘,那将是很好的.有谁知道这样做的方法?(我非常怀疑没有什么可以做的,但问问题永远不会伤害,对吧?)
哦,为了记录,在这种情况下,负利润率无处可去.:(
希望这是一个快速的问题:我最近在Eclipse中做了很多Java/Google Web Toolkit工作,虽然我很喜欢它,但到目前为止我已经有了一个重复出现的问题,这个问题开始让我感到沮丧.它看起来很随机,但经常发生烦人的事情:如果我正在进行大量的复制/粘贴,我会突然发现自己被IDE转移到函数或变量定义中,通常是在一个完全不同的文件中,此时我通常最终意外地复制了我不想要的代码,并且需要撤消并将自己重新定位到我想要的位置.我很确定这是一个"跳到定义"的快捷方式,我不断意外地打,但我不确定快捷方式是什么,究竟是什么触发它,最重要的是如何关闭它!
通常,当发生这种情况时,我将通过以下动议:
我发送给的定义并不总是双击的单词,但可能是双击前光标所在的最后一个单词.我最大的问题是我通常工作得足够快,以至于我没有准确地捕捉到触发行为的行为.
我真的想杀死正在做的事情(如果我想跳到定义我将上下文菜单).任何提示如何?
使用:
我在将Python IO重定向到我为Win32应用程序分配的控制台时遇到了一些麻烦.我需要重定向特定于Python的流吗?
这里或多或少我正在做的事情(删除错误检查等):
int __stdcall WinMain(/*Usual stuff here*/) {
// Create the console
AllocConsole();
SetConsoleTitle(L"My Console");
// Redirect Standard IO Streams to the new console
freopen("CONOUT$","w",stdout);
freopen("CONOUT$","w",stderr);
freopen("CONIN$","r",stdin);
// Test the console:
printf("This Works.\r\n");
cout << "So Does this" << endl;
// Python Stuff (This is where it fails)
Py_Initialize();
PyRun_SimpleString("print('I don't work.')\n");
Py_Finalize();
}
Run Code Online (Sandbox Code Playgroud)
如果我运行相同的东西,但作为控制台应用程序(Visual Studio 05,BTW)并删除AllocConsole调用一切正常.谁知道我错过了什么?
编辑:只是为了澄清,我正在寻找一种方法来从C API.
另外编辑:Alex的解决方案是正确的,但是对于那些使用Python 3.x的人来说,您可能会注意到新API中缺少PyFile_FromString函数.虽然它可能不是最好的选择,但我发现这在Python 3.x中运行良好:
PyObject* sys = PyImport_ImportModule("sys");
PyObject* io = PyImport_ImportModule("io");
PyObject* pystdout = PyObject_CallMethod(io, "open", "ss", "CONOUT$", "wt");
if …Run Code Online (Sandbox Code Playgroud) 我在下面的代码片段中启用了一个支持Ajax的WCF服务模板.我该怎么做才能让它返回JSon而不是XML?谢谢.
using System;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
[ServiceContract(Namespace = "WCFServiceEight")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class CostService
{
// Add [WebGet] attribute to use HTTP GET
[OperationContract]
[WebGet]
public double CostOfSandwiches(int quantity)
{
return 1.25 * quantity;
}
}
Run Code Online (Sandbox Code Playgroud) [更新:问题解决了!见帖子的底部]
我需要允许python开发人员将打包数据数组(在本例中为顶点)传递给我的API,这是一系列通过Python C API手动公开的C++接口.我对此的初步印象是使用ctypes Structure类来允许这样的接口:
class Vertex(Structure):
_fields_ = [
('x', c_float),
('y', c_float),
('z', c_float),
('u', c_float),
('v', c_float),
('color', c_int)
]
verts = (Vertex * 3)()
verts[0] = Vertex(0.0, 0.5, 0.0, 0.0, 0.5, 0xFF0000FF)
verts[1] = Vertex(0.5, -0.5, 0.0, 0.5, -0.5, 0x00FF00FF)
verts[2] = Vertex(-0.5, -0.5, 0.0, -0.5, -0.5, 0x0000FFFF)
device.ReadVertices(verts, 3) # This is the interfaces to the C++ object
Run Code Online (Sandbox Code Playgroud)
我试图传递的函数具有以下签名:
void Device::ReadVertices(Vertex* verts, int count);
Run Code Online (Sandbox Code Playgroud)
Python包装器看起来像这样:
static PyObject* Device_ReadVertices(Py_Device* self, PyObject* args)
{
PyObject* py_verts;
int …Run Code Online (Sandbox Code Playgroud) 我正在研究资源管理类,并希望让用户为"ReleaseResource"方法提供一个函子,作为资源管理器构造函数的一部分.从那里请求资源时,将提供functor作为我将返回的shared_ptr的删除器,以便在不再使用资源时调用适当的方法.
我遇到的问题是,这要求我将仿函数存储在我的班级中,而我并不完全确定如何做到这一点.通常在使用仿函数时,您可以像这样模拟函数:
template<class MyFunctor> MyMethod(MyFunctor f) {
f();
}
Run Code Online (Sandbox Code Playgroud)
如果您打算在该函数的范围内使用该仿函数,这很好,但由于该模板超出了该函数的范围我不知道您将如何指定适当类型的变量来存储仿函数供以后使用.
任何人都能指出我在正确的方向吗?
试图避免在这里重新发明轮子.我有一个Google Web Toolkit页面,我准备部署,但我正在与之通信的Web服务在部署的服务器上的相对地址与本地测试机器不同.
因此,我正在寻找一种简单的方法来部署一些易于编辑的配置文件,我可以在服务器端放置基本设置.关于如何做到这一点,我有几个想法,但它们看起来有点hacky,在我看来,必须已经有这种问题的解决方案(毕竟,每服务器设置是非常常见的事情!)
有任何想法吗?
编辑:由于这似乎没有引起太多关注,让我概述我的初步想法:在我任何其他逻辑之前,使用AJAX调用查询我查询的GWT文件的本地静态文件.当文件返回时,我解析出我的数据并将它们存储为全局可访问的变量,然后允许页面构建逻辑运行.看起来很笨,并且在任何加载之前等待AJAX返回有很大的缺点,但它会起作用.有更好的建议吗?(请?)
我的解决方案: 我自己找到了一个解决方案,但它与我的具体情况非常相关,因此我不知道它对普通用户有多大用处.无论如何,我会在这里发布它,因为有人发现它很有用.
我正在处理的页面实际上是嵌入在ASP.net站点中的GWT控件.利用这一点,以及我对GWT Dictionary类的发现,我把这样的"设置"系统放在一起:
首先,在ASP.net Web.Config文件中设置我想要的设置(在这种情况下是web服务的地址)
<appSettings>
<add key="serviceUrl" value="http://mySite.com/myService.asmx"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)
在嵌入GWT控件的ASP页面中,我添加了一个"静态"javascript对象,其中包含我需要的配置设置:
<head runat="server">
<title>Picklist Manager</title>
<script type="text/javascript" language="javascript">
var AppConfig = {
serviceUrl: "<%= ConfigurationManager.AppSettings["serviceUrl"] %>"
};
</script>
<script type="text/javascript" language="javascript" src="gwtcontrol.nocache.js"></script> <!-- Include my GWT control -->
</head>
Run Code Online (Sandbox Code Playgroud)
最后,在GWT中我创建了一个静态的"AppConfig"类,它暴露了这个设置:
public class AppConfig {
public static String serviceUrl = "defaultUrl";
public static void Initialize() {
Dictionary appConfig = Dictionary.getDictionary("AppConfig");
if(appConfig == null) { return; }
servicePath = appConfig.get("serviceUrl");
}
}
Run Code Online (Sandbox Code Playgroud)
从那里我可以在我的代码中的任何地方调用AppConfig.serviceUrl来获取设置...... 哇! …
我不知道如何处理这个:我想要一个TreeView,它将显示来自分层数据结构的一些简单数据.作为一个基本示例(在XML中,使其易于键入):
<Node text="Root">
<Node text="Item 1">
<Node text="Item 1.1" />
</Node>
<Node text="Item 2"/>
</Node>
Run Code Online (Sandbox Code Playgroud)
问题是这理论上可以无限地嵌套,因此您无法静态定义x个级别并完成它.有没有办法定义可以解释这种结构的HierarchicalDataTemplate?