在本地使用库而非安装它

81 投票
5 回答
128220 浏览
提问于 2025-04-17 11:56

我写了一个Python脚本,偶尔会向Twitter发送推文。
这个脚本只用到了一个叫做 tweepy 的库。安装了这个库之后,它就能正常工作了。

问题:
我想把这个脚本放在一个服务器上,但我没有权限在上面安装任何东西。
如果能直接从我存放这个库的文件夹里引入就太好了。
现在,我在文件顶部需要包含的内容是:

import tweepy

这个 tweepy 文件夹(里面有一个 __init__.py 文件,我觉得这个文件很重要)。

问题:
我怎么能在不安装这个库的情况下使用它呢?
基本上,我想把 import tweepy 替换成 import local_folder/tweepy/*

5 个回答

9

你应该安装一个虚拟Python环境,这样你就不需要担心是否有管理员权限了,而且可以随意安装你想要的东西。

21

简单明了的解决方案:

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

some.cool.package.doCoolStuff()

另一个使用'append'的方法在安装了某些包的情况下也不管用

81

编辑:这个答案已经过时了。你应该使用 VirtualEnv。如果你出于某种原因不想使用第三方软件(那你为什么还要安装库呢?),那么Python3里有一个叫 venv 的工具,它是内置的,所以没有理由不使用某种虚拟环境。不过,大多数活跃在社区的人还是更喜欢用VirtualEnv。可以参考 这个链接

VirtualEnv会安装一个本地的Python解释器,还有一个本地的包文件夹等等。它不仅解决了权限问题,最重要的是,VirtualEnv可以让你把不同的项目环境分开。如果你有一个项目需要Foo版本2.3,另一个需要Foo版本1.5,那它们就不能共享同一个环境;你必须用VirtualEnv把它们的环境分开。


有几种解决方法:

如果你已经知道怎么安装Python模块,默认的 distutils 设置里已经包含了每个用户的安装选项。只需运行 python setup.py install --user,而不是 python setup.py install。这是最简单的方法,因为这样不需要添加任何源代码。

你也可以在当前工作目录下运行包含 tweepy 的脚本。

你可以在运行脚本的环境(比如命令行)中添加一个名为PYTHONPATH的环境变量,并让它包含 tweepy 的路径。

如果这些方法都不行,而你确实想编辑你的源代码,你需要修改 sys.pathsys.path 是一个Python查找代码的路径列表。

在你的代码中写:

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

import tweepy

撰写回答