Tre*_*key 58 python import module
脚本:
我在python中编写了一个脚本,偶尔会向Twitter发送推文
它只使用一个名为:tweepy
的库,安装它工作的库后,很棒.
问题:
我想在没有安装任何权限的服务器上托管脚本
如果我可以从我所拥有的文件夹中本地包含它,那将会很棒.
截至目前,我只需要包含在我的文件的顶部是:
import tweepy
Run Code Online (Sandbox Code Playgroud)
在tweepy文件夹(也有一个__init__.py
我认为是非常重要的文件.
问题:
如何在不安装的情况下使用此库?
基本上我想替换:import tweepy
用import local_folder/tweepy/*
这可能只是蟒蛇常识,但我卡住了!
Har*_*wEm 65
编辑:这个答案已经过时了.你应该使用VirtualEnv.如果你出于某种原因对第三方软件过敏(在这种情况下,你为什么要安装库?),有一种名为venv的东西,字面意思是内置在python3中,所以没有理由不使用某种虚拟化.(但社区中活跃的大多数人更喜欢VirtualEnv.请参阅/sf/answers/2910151191/.)
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
Run Code Online (Sandbox Code Playgroud)
use*_*569 14
简单干净的解决方案:
import sys
sys.path.insert(0, '/absolute/path/to/package')
import some.cool.package
some.cool.package.doCoolStuff()
Run Code Online (Sandbox Code Playgroud)
'append' 的其他答案也不适用于已安装的软件包
你应该安装一个虚拟的python环境,这样你就不用担心拥有管理员权限了,你可以安装任何你想要的东西.
此外,如果你想像脚本一样经常使用它.在bashrc/zshrc文件中导出"PYTHONPATH"的简便方法,并提供包含代码的目录的路径.
例如:
export PYTHONPATH=$PYTHONPATH:$HOME/path/to/module
Run Code Online (Sandbox Code Playgroud)
这样,每次重新启动时都不需要执行sys.path.
快乐的编码