在本地使用库而非安装它。

18 浏览
0 Comments

在本地使用库而非安装它。

我用Python写了一个脚本,偶尔会在Twitter上发送推文。

它只使用了一个叫做tweepy的库。在安装该库后,它可以正常工作。

问题:

我想把脚本托管在一个我没有权限安装任何东西的服务器上。

如果我可以从我存储该脚本的文件夹中本地包含它,那就太好了。

目前为止,在我的文件顶部,我只需要包含:

import tweepy

tweepy文件夹(确实具有我认为很重要的__init__.py文件)。

问题:

如何在不安装该库的情况下使用它?

基本上我想将import tweepy替换为import local_folder/tweepy/*

admin 更改状态以发布 2023年5月21日
0
0 Comments

简单明了的解决方案:

import sys
sys.path.insert(0, '/absolute/path/to/package')
import some.cool.package
some.cool.package.doCoolStuff()

其他使用 'append' 的答案对于已安装的软件包不起作用。

0
0 Comments

编辑:这个回答已经过时了。你应该使用VirtualEnv。如果你因为某些原因对第三方软件过敏(在这种情况下,你为什么要安装库?),那么有一个名为venv的东西,它实际上内置在python3中,因此没有理由不使用某种虚拟化功能。(社区中大多数活跃的人喜欢使用VirtualEnv。详情请见https://stackoverflow.com/a/41573588/410889。)

VirtualEnv安装了一个本地python解释器,带有本地包文件夹等所有内容。除了完全解决了管理员权限的问题外,VirtualEnv最重要的特点是它允许您保持环境分离。如果您有一个需要Foo 2.3版本的项目和另一个需要Foo 1.5版本的项目,那么您不能让它们共享同一个环境;您必须使用VirtualEnv将它们的环境分开。


有几个可能性:

如果您已经知道如何安装Python模块,则默认的distutils设置已经包括一个针对每个用户的安装选项。只需要运行python setup.py install --user而不是python setup.py install即可。这是最简单的方法,因为这不需要添加任何源代码。

您还可以将tweepy目录作为当前工作目录运行脚本。

您可以在您用于运行脚本的任何环境(例如,shell)中添加名为PYTHONPATH的环境变量,并使其包含tweepy的路径。

如果所有其他方式都失败了,并且您真的想编辑源代码,那么您需要编辑sys.pathsys.path是Python将查找代码的位置列表。

在您的代码中,写下:

import sys
sys.path.append("/path/to/your/tweepy/directory")
import tweepy

0