现象
运行Python程序时出现以下错误:
Traceback (most recent call last):
File "D:\Program Files (x86)\JetBrains\PyCharm 2018.1\helpers\pycharm\_jb_pytest_runner.py", line 31, in <module>
pytest.main(args, plugins_to_load)
File "D:\Program Files (x86)\Python27\lib\site-packages\_pytest\config\__init__.py", line 60, in main
config = _prepareconfig(args, plugins)
File "D:\Program Files (x86)\Python27\lib\site-packages\_pytest\config\__init__.py", line 204, in _prepareconfig
pluginmanager=pluginmanager, args=args
File "D:\Program Files (x86)\Python27\lib\site-packages\pluggy\hooks.py", line 289, in __call__
return self._hookexec(self, self.get_hookimpls(), kwargs)
File "D:\Program Files (x86)\Python27\lib\site-packages\pluggy\manager.py", line 87, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "D:\Program Files (x86)\Python27\lib\site-packages\pluggy\manager.py", line 81, in <lambda>
firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
File "D:\Program Files (x86)\Python27\lib\site-packages\pluggy\callers.py", line 203, in _multicall
gen.send(outcome)
File "D:\Program Files (x86)\Python27\lib\site-packages\_pytest\helpconfig.py", line 93, in pytest_cmdline_parse
config = outcome.get_result()
File "D:\Program Files (x86)\Python27\lib\site-packages\pluggy\callers.py", line 81, in get_result
_reraise(*ex) # noqa
File "D:\Program Files (x86)\Python27\lib\site-packages\pluggy\callers.py", line 187, in _multicall
res = hook_impl.function(*args)
File "D:\Program Files (x86)\Python27\lib\site-packages\_pytest\config\__init__.py", line 684, in pytest_cmdline_parse
self.parse(args)
File "D:\Program Files (x86)\Python27\lib\site-packages\_pytest\config\__init__.py", line 901, in parse
self._preparse(args, addopts=addopts)
File "D:\Program Files (x86)\Python27\lib\site-packages\_pytest\config\__init__.py", line 856, in _preparse
early_config=self, args=args, parser=self._parser
File "D:\Program Files (x86)\Python27\lib\site-packages\pluggy\hooks.py", line 289, in __call__
return self._hookexec(self, self.get_hookimpls(), kwargs)
File "D:\Program Files (x86)\Python27\lib\site-packages\pluggy\manager.py", line 87, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "D:\Program Files (x86)\Python27\lib\site-packages\pluggy\manager.py", line 81, in <lambda>
firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
File "D:\Program Files (x86)\Python27\lib\site-packages\pluggy\callers.py", line 208, in _multicall
return outcome.get_result()
File "D:\Program Files (x86)\Python27\lib\site-packages\pluggy\callers.py", line 81, in get_result
_reraise(*ex) # noqa
File "D:\Program Files (x86)\Python27\lib\site-packages\pluggy\callers.py", line 182, in _multicall
next(gen) # first yield
File "D:\Program Files (x86)\Python27\lib\site-packages\_pytest\capture.py", line 60, in pytest_load_initial_conftests
capman.start_global_capturing()
File "D:\Program Files (x86)\Python27\lib\site-packages\_pytest\capture.py", line 120, in start_global_capturing
self._global_capturing = self._getcapture(self._method)
File "D:\Program Files (x86)\Python27\lib\site-packages\_pytest\capture.py", line 96, in _getcapture
return MultiCapture(out=True, err=True, Capture=FDCapture)
File "D:\Program Files (x86)\Python27\lib\site-packages\_pytest\capture.py", line 465, in __init__
self.out = Capture(1)
File "D:\Program Files (x86)\Python27\lib\site-packages\_pytest\capture.py", line 564, in __init__
f = TemporaryFile()
File "D:\Program Files (x86)\Python27\lib\tempfile.py", line 475, in NamedTemporaryFile
(fd, name) = _mkstemp_inner(dir, prefix, suffix, flags)
File "D:\Program Files (x86)\Python27\lib\tempfile.py", line 245, in _mkstemp_inner
_set_cloexec(fd)
File "D:\Program Files (x86)\Python27\lib\tempfile.py", line 50, in _set_cloexec
flags = _fcntl.fcntl(fd, _fcntl.F_GETFD, 0)
AttributeError: 'module' object has no attribute 'F_GETFD'
解决方法:
- 删除 Lib\fcntl.pyc, 并将Lib文件夹下fcntl.py重命名成fcntl_ex.py
我的路径是
D:\Program Files (x86)\Python27\Lib\fcntl.pyc
D:\Program Files (x86)\Python27\Lib\fcntl.py
参考
AttributeError: ‘module’ object has no attribute ‘F_GETFD’ - Windows 7