脚本:
我在python中编写了一个脚本,偶尔会向Twitter发送推文
它只使用一个名为tweepy的库。{
安装库后,它很有用。
问题:
我想在我无权安装任何内容的服务器上托管脚本
如果我可以从我所拥有的文件夹中将其包含在本地,那就太棒了。
截至目前,我需要在文件的顶部包含:
import tweepy
tweepy folder(DOES有一个__init__.py
文件,我认为这很重要。
问题:
如何在不安装的情况下使用此库?
基本上我想用import tweepy
import local_folder/tweepy/*
这可能只是蟒蛇常识,但我被卡住了!
答案 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.path
。 sys.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)
只需使用 venv
创建一个虚拟环境并将其安装在其中:
buildStepFailureThreshold
使用 --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