我正在冻结一个gettext本地化的(英语和法语,但将来可能更多)Python 脚本,pyinstaller --onefile palc.py它可以完美编译,但是当我尝试运行它时,它尝试使用存储在locales目录中的语言环境(这意味着它找不到如果我不将包与locales目录一起分发)。正如您可以想象的那样,这是一个主要缺点,并且几乎破坏了 PyInstaller \xe2\x80\x94 的意义,为了分发它,我必须提供一个目录和包才能使其工作 \xe2\x80 \x94 不过,正如我将向您展示的那样,即使这样它也不起作用。
是否有可能(最好不是太难或需要大量重写)使 PyInstaller 使用语言gettext环境编译 Python 脚本?
palc.spec,这是新版本:# -*- mode: python ; coding: utf-8 -*-\n\nblock_cipher = None\n\n\na = Analysis([\'palc.py\'],\n pathex=[\'~/python-text-calculator\'],\n binaries=[],\n datas=[(\'~/python-text-calculator/locales/*\', \'locales\')],\n hiddenimports=[],\n hookspath=[],\n runtime_hooks=[],\n excludes=[],\n win_no_prefer_redirects=False,\n win_private_assemblies=False,\n cipher=block_cipher,\n noarchive=False)\npyz = PYZ(a.pure, a.zipped_data,\n cipher=block_cipher)\nexe = EXE(pyz,\n a.scripts,\n [],\n exclude_binaries=True,\n name=\'palc\',\n debug=False,\n bootloader_ignore_signals=False,\n strip=False,\n upx=True,\n console=True )\ncoll = COLLECT(exe,\n a.binaries,\n a.zipfiles,\n a.datas,\n …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个 Reddit 抓取工具,它从 Reddit 主页获取前 100 页并将它们存储到 MongoDB 中。我不断收到错误:
TypeError: 'Collection' object is not callable. If you meant to call the 'insert_one' method on a 'Collection' object it is failing because no such method exists.
Run Code Online (Sandbox Code Playgroud)
这是我的代码
import pymongo
import praw
import time
def main():
fpid = os.fork()
if fpid!=0:
# Running as daemon now. PID is fpid
sys.exit(0)
user_agent = ("Python Scraper by djames v0.1")
r = praw.Reddit(user_agent = user_agent) #Reddit API requires user agent
conn=pymongo.MongoClient()
db = conn.reddit
threads …Run Code Online (Sandbox Code Playgroud) 我看过类似的问题,但没有一个答案对我有用。我正在开发一个机器人,您可以在其中输入内容(prefix)suggest (suggestion),然后它会发送一条消息,询问您是否确定要发送建议。如果他们对该消息的反应是机器人添加的反应(复选标记),那么它会将建议发送到频道。
简而言之,如何创建一个触发器,如果特定的人使用特定的表情符号对特定的消息做出反应,那么它会发送输出?
python ×3
discord ×1
discord.py ×1
gettext ×1
localization ×1
mongodb ×1
pyinstaller ×1
pymongo ×1
python-2.7 ×1
python-3.x ×1