pythonprofilers / memory_profiler

Monitor Memory usage of Python code
http://pypi.python.org/pypi/memory_profiler
Other
4.39k stars 380 forks source link

[BUG] invalid non-printable character U+FEFF #384

Open shenjackyuanjie opened 1 year ago

shenjackyuanjie commented 1 year ago

I try to use memory profiler in my project, but it gives me this issue

shenjack  DR  ➜ (main  1)  ♥ 13:13  mprof.exe run DR.py
mprof: Sampling memory every 0.1s
running new process
running as a Python program...
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "D:\APPS\CPython\Python311\Lib\site-packages\memory_profiler.py", line 1351, in <module>
    exec_with_profiler(script_filename, prof, args.backend, script_args)
  File "D:\APPS\CPython\Python311\Lib\site-packages\memory_profiler.py", line 1252, in exec_with_profiler
    exec(compile(f.read(), filename, 'exec'), ns, ns)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "DR.py", line 1
    """
    ^
SyntaxError: invalid non-printable character U+FEFF

you can see the file in my project

Python info

System info

Python info and System info gen by DR_crash_report

altendky commented 1 year ago

Looks like a byte order mark. I think notepad has a tendency to add these? For a workaround, you might try copy/pasting to a new file in another editor and saving that. For a potential change in this library, we could use encodings.utf_8_sig to open the file. That would be useful in this case. More generally, it would be nice if there is a way to open the file "like Python opens the file". That would cover coding: comments, but I don't know how that is done or if it is available to us at all.

shenjackyuanjie commented 1 year ago

hmmmmm thanks for anser!

shenjackyuanjie commented 1 year ago

well is actully my? fault image

shenjackyuanjie commented 1 year ago

maybe close this issue later

altendky commented 1 year ago

I think that it is triggered by your situation. I don't think that makes it "your fault". I also don't think that means there isn't anything to fix in this project. I think we should make a change to allow for BOMs, and anything else Python allows such as the coding comments. I just haven't made the time to do that.

shenjackyuanjie commented 1 year ago

oh, got it thanks for answer!