Pipreqs: SyntaxError: invalid non-printable character U+FEFF

Pipreqs: SyntaxError: invalid non-printable character U+FEFF

当我尝试 运行 pipreqs /path/to/project 它返回

  File "<unknown>", line 1
    # !/usr/bin/env python3
    ^
SyntaxError: invalid non-printable character U+FEFF

我的项目包含许多文件,并且所有文件都包含自己的导入。我在某处读到,为多个文件创建 requirements.txt 可能是个问题,因此我尝试将主文件移至新目录并在其中添加 运行 pipreqs,但同样没有成功。

我的导入是这样的:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#######################################################
# Initialise Wikipedia agent
#######################################################
import requests
import json
import aiml
import wikipedia
import numpy as np
from nltk.sem.logic import *
from nltk.inference.resolution import *
from nltk.inference import ResolutionProver
from nltk.inference.nonmonotonic import *
from nltk import *
from nltk.sem import logic
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
import pandas as pd
from fuzzywuzzy import fuzz
import tkinter as tk
from tkinter import filedialog
from azure.cognitiveservices.vision.computervision import ComputerVisionClient
from msrest.authentication import CognitiveServicesCredentials
import tensorflow_hub as hub

有人知道它可能是什么吗?任何帮助将不胜感激:)

编辑:

忘记说明:运行 Python 3.9.10pipreqs 是使用 pip3

安装的

你在Windows吗?您的文件包含 Unicode byte-order 标记。有些服务不喜欢这样。如果您删除 BOM,它应该可以工作。

字符 U+FEFF 是字节顺序标记,或 BOM。

您可以使用带或不带 BOM 的 UTF 编码保存文本文件,错误消息似乎表明您的系统可以处理 UTF,但不喜欢 BOM,因此您应该尝试重写不带 BOM 的文件.

或者,有一些方法可以告诉 Python 使用环境变量在命令行上使用不同的编码,但我不会去那里,除非你绝对必须并且无法控制文件的编码你自己。