我想使用win32com扩展来实现python com服务器.然后从.NET中使用服务器.我使用以下示例来实现com服务器并且它运行没有问题但是当我尝试使用C#消耗它时,我得到了FileNotFoundException并带有以下消息"使用CLSID检索组件的COM类工厂{676E38A6-7FA7-4BFF-9179 -AE959734DEBB}由于以下错误而失败:8007007e." .我也发布了C#代码.我想知道我是否遗漏了一些我会感激任何帮助.
谢谢,莎拉
#PythonCOMServer.py
import pythoncom
class PythonUtilities:
_public_methods_ = [ 'SplitString' ]
_reg_progid_ = "PythonDemos.Utilities"
# NEVER copy the following ID
# Use"print pythoncom.CreateGuid()" to make a new one.
_reg_clsid_ = pythoncom.CreateGuid()
print _reg_clsid_
def SplitString(self, val, item=None):
import string
if item != None: item = str(item)
return string.split(str(val), item)
# Add code so that when this script is run by
# Python.exe,.it self-registers.
if __name__=='__main__':
print 'Registering Com Server'
import win32com.server.register
win32com.server.register.UseCommandLine(PythonUtilities)
// the C# code …Run Code Online (Sandbox Code Playgroud) 我有一个表达式溢出为某些参数值.在这种情况下,我已经得出了使用笔和纸的渐近结果,当我有这样的情况时,我只用我的分析表达式替换.
目前我的代码做了这样的事情:
values = ExpressionThatOverFlows()
# Check the ones that overflow
indOverFlow = isnan(values)
# Set them to the values I derived by pen and paper
values[indOverFlow] = derivedValues
Run Code Online (Sandbox Code Playgroud)
我的问题是I/O爆炸了"警告".我知道它警告我很好,但我明确地照顾它,所以我想让它们沉默.请注意,我不想让所有类型的"溢出"警告静音,只有这里的警告.我认为像这样的东西会起作用,但它没有:
try:
values = ExpressionThatOverFlows()
except Warning:
pass
# and the rest of the code as it is
Run Code Online (Sandbox Code Playgroud)
我已经检查了一下,但我似乎只是找到了如何在整个会话或永远保持这些警告,但这是因为我指出的不是我想要的.
谢谢你的帮助,非常感谢.
编辑:这里有一个小得多的代码,产生我的问题:
from scipy import log1p, exp
from numpy import array, isnan
a = array([0.2222, 500.3, 0.3, 700.8, 0.111])
values = log1p(-exp(-exp(10**a - 9**a)))
print values # Note the nan's
indOverflow = …Run Code Online (Sandbox Code Playgroud) 我想加载图像,但我收到错误消息.
我的代码:
from PIL import Image
im = Image.open("D:\Python26\PYTHON-PROGRAMME\bild.jpg")
im.show()
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Traceback (most recent call last):
File "D:\Python26\PYTHON-PROGRAMME\00000000000000000", line 2, in <module>
im = Image.open("D:\Python26\PYTHON-PROGRAMME\bild.jpg")
File "D:\Python26\lib\site-packages\PIL\Image.py", line 1888, in open
fp = __builtin__.open(fp, "rb")
IOError: [Errno 22] invalid mode ('rb') or filename: 'D:\\Python26\\PYTHON-PROGRAMME\x08ild.jpg'
Run Code Online (Sandbox Code Playgroud) 我是Python的新手,我一直在尝试用它制作一个斐波纳契程序.
def fib(n):
print 'n =', n
if n > 1:
return n * fib(n - 1)
else:
print 'end of the line'
return 1
n = raw_input('Input number: ')
int(n)
fib(n)
Run Code Online (Sandbox Code Playgroud)
当我尝试运行此程序时,输入数字后出现以下错误:
输入数量:5
n = 5
Traceback(最近一次调用最后一次):
文件"fibonacci.py",第11行,in
Run Code Online (Sandbox Code Playgroud)fib(n)文件"fibonacci.py",第4行,在fib
Run Code Online (Sandbox Code Playgroud)return n * fib(n - 1)TypeError:不支持的操作数类型 - :'str'和'int'
如果我运行解释器并仅导入函数(后面没有代码),请提供n的值并使用值作为参数调用函数,它可以工作.
我尝试将输入转换为int,因为我认为这是一个字符串问题,但没有骰子.我真的不知道自己哪里出错了,所以如果你能够对这个问题有所了解,我们将不胜感激.
我想把问题标题改为特定的东西,但我真的不知道问题是什么.