当我尝试运行
pipreqs /path/to/project
时,它会返回
File "<unknown>", line 1
# !/usr/bin/env python3
^
SyntaxError: invalid non-printable character U+FEFF
我的项目包含许多文件,并且所有文件都包含自己的导入。我在某处读到,为多个文件创建 requests.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.10
且 pipreqs
是使用 pip3
安装的
字符 U+FEFF 是字节顺序标记,或 BOM。
您可以使用带或不带 BOM 的 UTF 编码保存文本文件,错误消息似乎表明您的系统可以处理 UTF,但不喜欢 BOM,因此您应该尝试重写不带 BOM 的文件。
或者,有一些方法可以告诉Python在命令行上使用环境变量期望不同的编码,但我不会去那里,除非你绝对必须并且无法自己控制文件的编码。
您使用的是 Windows 吗?您的文件包含 Unicode 字节顺序标记。有些服务不喜欢这样。如果删除 BOM,它应该可以工作。
我想指出,问题下评论中的@MarkRansom 解决方案也可以节省很多痛苦。所以,如果
--encoding=utf-8
仍然没有帮助,你应该尝试 --encoding=utf-8-sig
。