在代码中安装python模块
我需要从PyPi直接在我的脚本中安装一个软件包。 也许有存在模块或distutils(分布,点)能力,让我只是执行像pypi.install('requests')
和请求将被安装到我的virtualenv,我不应该在我的shell中键入pip install requests
?
你也可以使用像这样的东西:
import pip def install(package): pip.main(['install', package]) # Example if __name__ == '__main__': install('argh')
如果您想使用pip
来安装所需的软件包并在安装后导入它,可以使用以下代码:
def install_and_import(package): import importlib try: importlib.import_module(package) except ImportError: import pip pip.main(['install', package]) finally: globals()[package] = importlib.import_module(package) install_and_import('transliterate')
如果以用户身份安装软件包,则可能会遇到无法导入软件包的问题。 请参阅如何刷新sys.path? 获取更多信息。
您可以使用“install_requires”选项在自己的包的setup.py中定义依赖模块。
如果您的软件包需要生成一些控制台脚本,那么您可以使用“console_scripts”入口点来生成一个将被放置在“bin”文件夹(例如virtualenv环境)中的包装脚本。
这应该工作:
import subprocess def install(name): subprocess.call(['pip', 'install', name])
我希望这个问题依然有效。 我做了上面这样的事情:
import sys import os import site try: import pip except ImportError: print "installing pip" cmd = "sudo easy_install pip" os.system(cmd) reload(site) try: import requests except ImportError: print "no lib requests" import pip cmd = "sudo pip install requests" print "Requests package is missing\nPlease enter root password to install required package" os.system(cmd) reload(site)
第二个try块可以写在第一个try块的else部分,但是在我的问题语句中我必须写两个独立的块。
你可以随时下载
import os
然后对所有的terminal命令从那里下载。
喜欢
while True: code = input("") os.system("code")
不pipe是什么,我不知道,但如果你甚至不知道如何在terminal做到这一点,你怎么会在python做。