(Python)在本地使用库而不是安装它

时间:2012-01-30 05:21:38

标签: python import module

脚本:
我在python中编写了一个脚本,偶尔会向Twitter发送推文 它只使用一个名为tweepy的库。{ 安装库后,它很有用。

问题:
我想在我无权安装任何内容的服务器上托管脚本 如果我可以从我所拥有的文件夹中将其包含在本地,那就太棒了。
截至目前,我需要在文件的顶部包含:

import tweepy

tweepy folder(DOES有一个__init__.py文件,我认为这很重要。

问题:
如何在不安装的情况下使用此库? 基本上我想用import tweepy

替换import local_folder/tweepy/*

这可能只是蟒蛇常识,但我被卡住了!

5 个答案:

答案 0 :(得分:61)

编辑:此答案已过时。您应该使用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目录作为当前工作目录运行脚本。

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

如果所有其他方法都失败了,而您确实想要编辑源代码,则需要修改sys.pathsys.path是Python查找代码的位置列表。

在你的代码中,写一下:

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

import tweepy

答案 1 :(得分:8)

您应该安装virtual python environment,这样您就不必担心拥有管理员权限,并且可以随意安装。

答案 2 :(得分:6)

此外,如果你想像脚本一样经常使用它。 在bashrc / zshrc文件中导出“PYTHONPATH”的简便方法,并提供包含代码的目录的路径。

例如:

export PYTHONPATH=$PYTHONPATH:$HOME/path/to/module

这样,每次重新启动时都不需要执行sys.path。

快乐编码

答案 3 :(得分:3)

简单明了的解决方案:

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

some.cool.package.doCoolStuff()

上面的'append'回答不适用于已安装的软件包

答案 4 :(得分:0)

选项 1:venv

只需使用 venv 创建一个虚拟环境并将其安装在其中:

buildStepFailureThreshold

选项 2:--user

使用 --user 将软件包安装在用户目录中

$ python -m venv venv
$ source venv/bin/activate

# Form here on, pip is the pip from venv!
$ pip --version
pip 20.3 from /home/math/venv/lib/python3.8/site-packages/pip (python 3.8)
$ pip install tweepy