得到的错误为;源代码字符串不能包含空字节";当运行'python-m unittest-v…'时,但当运行'python filename'时没有错误?

得到的错误为;源代码字符串不能包含空字节";当运行'python-m unittest-v…'时,但当运行'python filename'时没有错误?,python,python-3.x,valueerror,Python,Python 3.x,Valueerror,我有一个测试文件(\tests\test\u 1.py) 跑步的时候呢 (base) PS C:\Users\xx\Source\api> python -m unittest -v tests.test_1 (base) PS C:\Users\xx\Source\api> python .\tests\test_1.py ---------------------------------------------------------------------- Ran 0 t

我有一个测试文件(
\tests\test\u 1.py

跑步的时候呢

(base) PS C:\Users\xx\Source\api> python -m unittest -v tests.test_1
(base) PS C:\Users\xx\Source\api> python .\tests\test_1.py

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK
它得到了fowlowing错误:

Traceback (most recent call last):
  File "C:\Users\xx\Anaconda3\lib\runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\xx\Anaconda3\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\xx\Anaconda3\lib\unittest\__main__.py", line 18, in <module>
    main(module=None)
  File "C:\Users\xx\Anaconda3\lib\unittest\main.py", line 100, in __init__
    self.parseArgs(argv)
  File "C:\Users\xx\Anaconda3\lib\unittest\main.py", line 147, in parseArgs
    self.createTests()
  File "C:\Users\xx\Anaconda3\lib\unittest\main.py", line 158, in createTests
    self.test = self.testLoader.loadTestsFromNames(self.testNames,
  File "C:\Users\xx\Anaconda3\lib\unittest\loader.py", line 220, in loadTestsFromNames
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "C:\Users\xx\Anaconda3\lib\unittest\loader.py", line 220, in <listcomp>
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "C:\Users\xx\Anaconda3\lib\unittest\loader.py", line 154, in loadTestsFromName
    module = __import__(module_name)
ValueError: source code string cannot contain null bytes
test_1.py
文件现在只有以下代码:

from unittest import mock, TestCase, main

class TestDataPipeline(TestCase):
    
    def test_1(self):
        pass
  
if __name__ == '__main__':
    main()

可能是我发现问题并在我的文件上尝试了sed命令的副本,但它没有解决问题。另外,如果文件中有空字符,为什么python文件名可以运行它?空字节到底在哪里?您发布的代码中没有显示任何空字节。投票关闭需要调试详细信息。@tripleee,没有空字节。我不知道如何
python-m unittest…
引发错误。我在一个非常简单的配置中得到了错误。让我知道还有什么调试细节会有用。那听起来像是unittest框架中一个相当愚蠢的bug。你真的确定吗?你能得到一个更详细的回溯,在那里你能看到有问题的值吗?(我在想你在iPython和/或cgitb上得到的一个。)
from unittest import mock, TestCase, main

class TestDataPipeline(TestCase):
    
    def test_1(self):
        pass
  
if __name__ == '__main__':
    main()