c# – 如何在IronPython中使用标准库?

c# – 如何在IronPython中使用标准库?,第1张

概述我会在这个问题前面加上:不,设置IRONPYTHONPATH不是答案. 无论如何… 我正在计划使用IronPython作为Powershell替代项目,但是在我开始之前我已经被困了. 我试图做的第一件事是使用os.path,导致: Traceback (most recent call last): File "<string>", line 1, in <module>ImportErro 我会在这个问题前面加上:不,设置IRONPYTHONPATH不是答案.

无论如何…

我正在计划使用IronPython作为Powershell替代项目,但是在我开始之前我已经被困了.

我试图做的第一件事是使用os.path,导致:

Traceback (most recent call last):  @R_301_6852@ "<string>",line 1,in <module>importError: No module named os

在搞砸之后,我终于发现我可以使用标准库手动添加到路径中:

import syssys.path.append(r"C:\Program @R_301_6852@s\IronPython 2.7\lib")import os

但是,这是一个愚蠢的想法.在我的脚本中编写python库的路径是一个100%保证的方式,使它们在某些时候不起作用.

当我尝试在windows 7机器上使用脚本时,我几乎立即发现了这个路径,并且路径略有不同(‘Program @R_301_6852@s(x86)’).

所以,这里有几个问题:

1)为什么使用标准库很难?至少我会想到在VS和基本的ipy.exe的交互式提示将有这个.

2)无论我使用的系统如何,我如何确定安装铁Python的目录? (IronPython安装程序可能会设置一个var?)

这里只是一个注释是的,我看到一些其他帖子说“设置你的IRONPYTHONPATH”.这没有帮助如果我有一台空白机器,这意味着我必须:

1)安装IronPython

2)运行一些疯狂的PowerShell脚本来搜索安装了标准库的位置,并为其设置一个全局IRONPYTHONPATH变量.

3)运行python脚本

我在寻找更好的方法.

编辑:

事实上,我正在使用这样的功能来做事情基本上是无关紧要的,但是我正在尝试实现以下一些:

import clrfrom System.Management.automation import RunspaceInvokeimport osscriptRoot = os.getcwd()runSpace = RunspaceInvoke()cmdpath64 = os.join(scriptRoot,"..\java\...")cmdpath32 = os.join(scriptRoot,"..\java\...")proc = runSpace.Invoke("Get-WmiObject Win32_Processor ... ")if proc.AddressWIDth == 32:  runSpace.Invoke(cmdpath32)else:  runSpace.Invoke(cmdpath64)
解决方法 我发现,为了确保一切适用于非开发人员第三方,通常最好使用pyc.py来创建DLL和可执行文件.我经常创建一个python标准模块的DLL,并在代码中引用.在这个问题 IronPython: EXE compiled using pyc.py cannot import module “os”看到我以前的答案 总结

以上是内存溢出为你收集整理的c# – 如何在IronPython中使用标准库?全部内容,希望文章能够帮你解决c# – 如何在IronPython中使用标准库?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1236200.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存