【发布时间】:2014-11-18 18:59:41
【问题描述】:
我在 python 2.2.1 上获得了 os.system() 和 os.popen() 的 NullPointerException。奇怪的是我有两台服务器,同样的代码在一台服务器上运行良好,但在另一台服务器上运行良好。第二个服务器中可能缺少什么?
下面是代码sn-p
import sys
import os
print (sys.version) #This line works on both servers and gives 2.2.1 os output
os.system('pwd')
os.popen('hostname -f').read().rstrip('\n')
我在第二台服务器中收到以下错误:
*File "/u01/oracle/mwhome/wlserver_10.3/common/wlst/modules/jython-modules.jar/Lib/javaos$py.class", line 333, in system
File "/u01/oracle/mwhome/wlserver_10.3/common/wlst/modules/jython-modules.jar/Lib/popen2.py", line 31, in ?
File "/u01/oracle/mwhome/wlserver_10.3/common/wlst/modules/jython-modules.jar/Lib/javashell.py", line 17, in ?
File "/u01/oracle/mwhome/wlserver_10.3/common/wlst/modules/jython-modules.jar/Lib/string$py.class", line 434, in ?
at java.io.File.<init>(File.java:222)
at java.lang.Package$1.run(Package.java:527)
at java.lang.Package.defineSystemPackage(Package.java:520)
at java.lang.Package.getSystemPackages(Package.java:511)
at java.lang.ClassLoader.getPackages(ClassLoader.java:1513)
at java.lang.ClassLoader.getPackages(ClassLoader.java:1511)
at java.lang.Package.getPackages(Package.java:281)
at org.python.core.JavaImportHelper.buildLoadedPackages(Unknown Source)
at org.python.core.JavaImportHelper.tryAddPackage(Unknown Source)
at org.python.core.imp.import_next(Unknown Source)
at org.python.core.imp.import_name(Unknown Source)
at org.python.core.imp.importName(Unknown Source)
at org.python.core.ImportFunction.load(Unknown Source)
at org.python.core.ImportFunction.__call__(Unknown Source)
at org.python.core.PyObject.__call__(Unknown Source)
at org.python.core.__builtin__.__import__(Unknown Source)
at org.python.core.imp.importFromAs(Unknown Source)
at org.python.core.imp.importFrom(Unknown Source)
at string$py.f$0(C:\wlst\jython_2.2.1\Lib\string.py:434)
at string$py.call_function(C:\wlst\jython_2.2.1\Lib\string.py)
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyCode.call(Unknown Source)
at org.python.core.imp.createFromCode(Unknown Source)
at org.python.core.imp.createFromPyClass(Unknown Source)
at org.python.core.ZipFileImporter$ZipFileLoader.load_module(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
java.lang.NullPointerException: java.lang.NullPointerException*
【问题讨论】:
-
值得注意的是,强烈建议使用the
subprocessmodule 而不是os.popen()或os.system()。 -
嗨 Lattyware,我相信这个 python 版本(2.2.1)中不存在 subprocess 模块。当我尝试导入它时,我得到“ImportError: no module named subprocess”。
-
2.2.1?哎哟。这是
wsadmin的 Jython 版本吗?我从来没有见过任何东西需要这么旧的版本。我假设您与它相关,但如果不是,请更新到不那么古老的东西。
标签: python nullpointerexception jython os.system