在本地使用库而非安装它。
在本地使用库而非安装它。
我用Python写了一个脚本,偶尔会在Twitter上发送推文。
它只使用了一个叫做tweepy的库。在安装该库后,它可以正常工作。
问题:
我想把脚本托管在一个我没有权限安装任何东西的服务器上。
如果我可以从我存储该脚本的文件夹中本地包含它,那就太好了。
目前为止,在我的文件顶部,我只需要包含:
import tweepy
tweepy文件夹(确实具有我认为很重要的__init__.py
文件)。
问题:
如何在不安装该库的情况下使用它?
基本上我想将import tweepy
替换为import local_folder/tweepy/*
。
编辑:这个回答已经过时了。你应该使用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.path
。sys.path
是Python将查找代码的位置列表。
在您的代码中,写下:
import sys sys.path.append("/path/to/your/tweepy/directory") import tweepy