本文共 1715 字,大约阅读时间需要 5 分钟。
PowerShell wrapper around Python for .NET to invoke Python from PowerShell
Install snek
Install-Module snek
Requirements
Python v2.7, v3.5, v3.6, or v3.7 (defaults to python 3.7)
Functions
Use-Python
Invoke-Python
Import-PythonRuntime
Import-PythonModule
Install-PythonModule
Uninstall-PythonModule
Use-PythonScope
Set-PythonVariable
Invoke Python Code (v3.7)
Use-Python {
Invoke-Python -Code "print('hi!')"
}
hi!
Invoke Python Code (v2.7)
PS > Use-Python {
Invoke-Python -Code "print('hi!')"
} -Version v2.7
hi!
Returning A Value from Python to PowerShell
Due to the use of dynamic the type must be cast to the expected type so you need to specify the -ReturnType parameter to do so.
Use-Python {
Invoke-Python "'Hello'" -ReturnType ([String])
}
Imports the numpy Python module and does some math
Access methods of modules directly!
Use-Python {
$np = Import-PythonModule "numpy"
[float]$np.cos($np.pi * 2)
[float]$np.sin(5)
[float]($np.cos(5) + $np.sin(5))
} -Version v3.7
Output
1
-0.9589243
-0.6752621
Manage pip
Format is Install-PythonModule
Install-PythonModule requests
Or similarly:
Uninstall-PythonModule requests
Using Scopes
You can use Python scopes to string together multiple Invoke-Python calls or to pass in variables from PowerShell.
Use-Python {
Use-PythonScope {
Invoke-Python -Code "import sys"
Invoke-Python -Code "sys.version" -ReturnType ([string])
}
}
Passing a .NET Object to Python
class Person {
[string]$FirstName
[string]$LastName
}
Use-Python {
Use-PythonScope {
$Person = [Person]::new()
$Person.FirstName = "Adam"
$Person.LastName = "Driscoll"
Set-PythonVariable -Name "person" -Value $Person
Invoke-Python -Code "person.FirstName + ' ' + person.LastName" -ReturnType ([string])
}
}
转载地址:https://blog.csdn.net/weixin_34081553/article/details/112928113 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!