总的来说,pip在我的服务器上运行得很好。我刚刚安装了软件包waitress,安装似乎成功了。我用pip freeze查过了
$ pip freeze | grep waitress
waitress==2.1.0服务生也可以通过python3导入:
>>> import waitress
>>>但是,不能执行waitress-serve:
$ waitress-serve
Command 'waitress-serve' not found, but can be installed with:
apt install python3-waitress
Please ask your administrator.我不是此服务器上的根用户。这是否是部分安装软件包的原因,还是我在这里推测?
由于我没有被授权运行apt install,而且简单的pip安装在我的虚拟环境中工作,所以我希望能够在不使用建议的apt install python3-waitress命令的情况下让它工作。
发布于 2022-03-11 21:15:55
的结论是,虽然它安装在虚拟主机内部和外部,但实际上只能在其内部执行。
当可安装的Python包给您一个实际的入口点时,通常它不会出现在您的路径上。
当您使用虚拟环境时,激活环境会将该环境的各个部分暂时放到路径上。这是为了确保像python或python3这样的命令运行环境的Python,但它也允许在路径上找到这些入口点。
系统Python安装(在这里,我指的不仅仅是操作系统附带的Python,还包括事后手动安装的Python--但不是虚拟环境)默认情况下它的库文件夹不足以使python和pip工作。(在Windows上,通常甚至连这些都没有添加到路径中;相反,程序py被放置在Windows文件夹中,它完成查找Python可执行文件的工作。)即使允许您将东西直接安装到系统Python中(如果您可以避免,即使允许您这样做,通常也不应该这样做),它们在那里也是不可找到的。
当然,您可以通过显式指定它们的路径来很好地执行这些事情。但是,通常正确的方法是确保,当您想要运行程序时,会激活安装包的相同虚拟环境。
(在我的系统中,我有一个主要的“沙箱”虚拟环境,用于我的所有项目-除非我专门测试安装过程,或者测试代码如何在不同版本的Python上工作。然后,我使用包装脚本打开终端窗口,导航到包含所有项目的文件夹,并激活环境。)
发布于 2022-03-11 21:01:34
如果waitress安装在虚拟环境中,我认为您可能是意外(或不)从上述虚拟环境中退出的。
如果您正在运行虚拟环境,您可以一个接一个地尝试以下命令:
source venv/bin/activate #venv is assumed to be the name of the virtual environment you are using.
pip install waitress
waitress-serve每当您需要使用服务员时,您都需要再次激活虚拟环境:
source venv/bin/activate
waitress-serve请注意,我假设您是在Linux环境中运行。
如果这不是你所面临的问题,那就可以在你的问题上多解释一点。
编辑:使用pip安装并在我的虚拟服务器上运行它,见下图,运行于python 3.8.10

https://stackoverflow.com/questions/71444507
复制相似问题