通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

如何在shell 中运行python

如何在shell 中运行python

在shell中运行Python的方法有很多,常见的包括直接运行Python命令、使用shebang(#!)行执行Python脚本、通过虚拟环境运行Python等。直接运行Python命令是最简单的一种方式,下面将详细介绍这种方法。

直接运行Python命令

在shell中直接运行Python命令是最简单也是最常用的方法之一。你只需要打开终端,然后输入python或者python3命令,具体取决于你的系统配置。例如:

python3 script.py

这样就可以在shell中执行Python脚本script.py了。如果你只想进入Python交互模式,可以直接输入python或者python3

一、直接运行Python脚本

  1. 编写Python脚本

首先,你需要编写一个Python脚本。例如,新建一个文件script.py并添加以下代码:

print("Hello, World!")

  1. 在Shell中运行Python脚本

打开终端,导航到脚本所在的目录,然后运行以下命令:

python script.py

如果你的系统中默认Python版本是Python 2.x,而你想运行Python 3.x版本的脚本,可以使用以下命令:

python3 script.py

二、使用Shebang(#!)行执行Python脚本

  1. 添加Shebang行

在你的Python脚本的第一行添加以下内容:

#!/usr/bin/env python3

这行代码告诉系统使用环境中找到的Python 3解释器来执行脚本。

  1. 赋予执行权限

在终端中运行以下命令,赋予脚本执行权限:

chmod +x script.py

  1. 运行脚本

现在你可以直接运行脚本,而不需要显式调用Python解释器:

./script.py

三、通过虚拟环境运行Python

虚拟环境可以帮助你在不同项目中使用不同版本的Python包,而不会产生冲突。下面是创建和使用虚拟环境的步骤:

  1. 安装virtualenv

如果你还没有安装virtualenv,可以使用以下命令进行安装:

pip install virtualenv

  1. 创建虚拟环境

在项目目录中创建一个新的虚拟环境:

virtualenv venv

  1. 激活虚拟环境

在终端中运行以下命令激活虚拟环境:

对于Linux和macOS:

source venv/bin/activate

对于Windows:

venv\Scripts\activate

  1. 在虚拟环境中运行Python脚本

激活虚拟环境后,你可以像平常一样运行Python脚本:

python script.py

四、使用subprocess模块在Shell中调用Python

有时候,你可能需要在Shell脚本中调用Python脚本。可以使用Python内置的subprocess模块来实现这一点。

  1. 编写Shell脚本

新建一个Shell脚本文件script.sh并添加以下内容:

#!/bin/bash

python3 -c 'print("Hello from Python")'

  1. 赋予执行权限并运行

在终端中运行以下命令,赋予Shell脚本执行权限并运行:

chmod +x script.sh

./script.sh

五、使用exec命令在Shell中调用Python

exec命令可以替换当前Shell进程并执行指定的命令。你可以在Shell脚本中使用exec命令来调用Python脚本。

  1. 编写Shell脚本

新建一个Shell脚本文件script.sh并添加以下内容:

#!/bin/bash

exec python3 -c 'print("Hello from Python")'

  1. 赋予执行权限并运行

在终端中运行以下命令,赋予Shell脚本执行权限并运行:

chmod +x script.sh

./script.sh

六、使用make工具在Shell中运行Python脚本

make工具通常用于自动化构建过程,但它也可以用来运行Python脚本。你可以编写一个Makefile来定义要执行的Python脚本。

  1. 编写Makefile

新建一个文件Makefile并添加以下内容:

run:

python3 script.py

  1. 运行Makefile

在终端中运行以下命令:

make run

七、使用nohup命令在后台运行Python脚本

有时候你可能希望在后台运行Python脚本,即使关闭终端会话,脚本也会继续运行。你可以使用nohup命令来实现这一点。

  1. 编写Python脚本

编写一个名为long_running_script.py的Python脚本,例如:

import time

while True:

print("Running...")

time.sleep(10)

  1. 在后台运行脚本

在终端中使用nohup命令运行脚本:

nohup python3 long_running_script.py &

八、使用cron定时任务调度Python脚本

cron是类Unix系统中的一个定时任务调度程序,你可以使用cron来定期运行Python脚本。

  1. 编辑crontab文件

在终端中运行以下命令以编辑crontab文件:

crontab -e

  1. 添加定时任务

在crontab文件中添加以下内容,以每隔一分钟运行一次Python脚本:

* * * * * /usr/bin/python3 /path/to/your/script.py

保存并退出编辑器,cron将会按照设定的时间间隔执行你的Python脚本。

九、使用at命令调度一次性任务

at命令允许你调度一次性任务。你可以使用at命令来在指定时间运行Python脚本。

  1. 调度一次性任务

在终端中运行以下命令,以在当前时间5分钟后运行Python脚本:

echo "python3 /path/to/your/script.py" | at now + 5 minutes

十、在Docker容器中运行Python脚本

Docker容器是一种轻量级的虚拟化技术,可以帮助你在隔离的环境中运行Python脚本。

  1. 编写Dockerfile

新建一个文件Dockerfile并添加以下内容:

FROM python:3.8-slim

COPY script.py /app/script.py

WORKDIR /app

CMD ["python3", "script.py"]

  1. 构建Docker镜像

在终端中运行以下命令构建Docker镜像:

docker build -t my-python-app .

  1. 运行Docker容器

使用以下命令运行Docker容器:

docker run my-python-app

十一、在Jupyter Notebook中运行Shell命令

Jupyter Notebook是一个交互式计算环境,你可以在其中运行Python代码和Shell命令。

  1. 安装Jupyter Notebook

如果你还没有安装Jupyter Notebook,可以使用以下命令进行安装:

pip install notebook

  1. 启动Jupyter Notebook

在终端中运行以下命令启动Jupyter Notebook:

jupyter notebook

  1. 在Notebook中运行Shell命令

在Notebook单元格中,你可以使用!符号运行Shell命令,例如:

!python3 script.py

十二、在Anaconda环境中运行Python脚本

Anaconda是一种用于数据科学和机器学习的Python发行版,它包含了大量的科学计算库和工具。你可以在Anaconda环境中运行Python脚本。

  1. 创建Anaconda环境

在终端中运行以下命令创建一个新的Anaconda环境:

conda create --name myenv python=3.8

  1. 激活Anaconda环境

使用以下命令激活Anaconda环境:

conda activate myenv

  1. 在Anaconda环境中运行Python脚本

激活环境后,你可以像平常一样运行Python脚本:

python script.py

十三、使用screen命令在后台运行Python脚本

screen命令允许你在后台运行Python脚本,并在需要时恢复会话。

  1. 启动screen会话

在终端中运行以下命令启动一个新的screen会话:

screen -S mysession

  1. 运行Python脚本

在screen会话中运行你的Python脚本:

python3 script.py

  1. 分离screen会话

按下Ctrl+A,然后按D键分离screen会话。你的Python脚本将继续在后台运行。

  1. 恢复screen会话

使用以下命令恢复screen会话:

screen -r mysession

十四、使用tmux命令在后台运行Python脚本

tmux是一个终端复用器,允许你在一个终端会话中运行多个终端会话。

  1. 启动tmux会话

在终端中运行以下命令启动一个新的tmux会话:

tmux new -s mysession

  1. 运行Python脚本

在tmux会话中运行你的Python脚本:

python3 script.py

  1. 分离tmux会话

按下Ctrl+B,然后按D键分离tmux会话。你的Python脚本将继续在后台运行。

  1. 恢复tmux会话

使用以下命令恢复tmux会话:

tmux attach -t mysession

十五、在远程服务器上运行Python脚本

有时候,你可能需要在远程服务器上运行Python脚本。你可以使用SSH连接到远程服务器,并在服务器上运行Python脚本。

  1. 连接到远程服务器

在终端中运行以下命令连接到远程服务器:

ssh user@remote_server

  1. 运行Python脚本

连接到远程服务器后,导航到Python脚本所在的目录,并运行脚本:

python3 script.py

十六、使用fabric库进行远程执行

fabric是一个Python库,允许你通过SSH在远程服务器上执行命令。

  1. 安装fabric

在本地机器上安装fabric库:

pip install fabric

  1. 编写Fabric脚本

新建一个文件fabfile.py并添加以下内容:

from fabric import Connection

def run_script():

conn = Connection('user@remote_server')

conn.run('python3 /path/to/your/script.py')

  1. 运行Fabric脚本

在终端中运行以下命令执行Fabric脚本:

fab run_script

十七、使用paramiko库进行远程执行

paramiko是一个用于实现SSH2协议的Python库,可以用来在远程服务器上执行命令。

  1. 安装paramiko

在本地机器上安装paramiko库:

pip install paramiko

  1. 编写Paramiko脚本

新建一个文件paramiko_script.py并添加以下内容:

import paramiko

def run_script():

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect('remote_server', username='user', password='password')

stdin, stdout, stderr = ssh.exec_command('python3 /path/to/your/script.py')

print(stdout.read().decode())

ssh.close()

run_script()

  1. 运行Paramiko脚本

在终端中运行以下命令执行Paramiko脚本:

python3 paramiko_script.py

十八、使用pyro库进行远程对象调用

pyro是一个Python远程对象调用库,允许你在网络上调用远程对象的方法。

  1. 安装pyro

在本地机器和远程服务器上安装pyro库:

pip install pyro4

  1. 编写服务器端脚本

在远程服务器上新建一个文件pyro_server.py并添加以下内容:

import Pyro4

@Pyro4.expose

class MyRemoteObject:

def run_script(self):

import subprocess

result = subprocess.run(['python3', '/path/to/your/script.py'], capture_output=True)

return result.stdout.decode()

daemon = Pyro4.Daemon()

ns = Pyro4.locateNS()

uri = daemon.register(MyRemoteObject)

ns.register("example.myremoteobject", uri)

print("Server is running...")

daemon.requestLoop()

  1. 启动服务器

在远程服务器上运行以下命令启动服务器:

python3 pyro_server.py

  1. 编写客户端脚本

在本地机器上新建一个文件pyro_client.py并添加以下内容:

import Pyro4

myremoteobject = Pyro4.Proxy("PYRONAME:example.myremoteobject")

print(myremoteobject.run_script())

  1. 运行客户端脚本

在本地机器上运行以下命令执行客户端脚本:

python3 pyro_client.py

十九、使用ZeroMQ库进行消息传递

ZeroMQ是一个高性能异步消息库,可以用于在分布式系统中传递消息。

  1. 安装ZeroMQ

在本地机器和远程服务器上安装pyzmq库:

pip install pyzmq

  1. 编写服务器端脚本

在远程服务器上新建一个文件zmq_server.py并添加以下内容:

import zmq

import subprocess

context = zmq.Context()

socket = context.socket(zmq.REP)

socket.bind("tcp://*:5555")

while True:

message = socket.recv_string()

if message == "run_script":

result = subprocess.run(['python3', '/path/to/your/script.py'], capture_output=True)

socket.send_string(result.stdout.decode())

  1. 启动服务器

在远程服务器上运行以下命令启动服务器:

python3 zmq_server.py

  1. 编写客户端脚本

在本地机器上新建一个文件zmq_client.py并添加以下内容:

import zmq

context = zmq.Context()

socket = context.socket(zmq.REQ)

socket.connect("tcp://remote_server:5555")

socket.send_string("run_script")

message = socket.recv_string()

print(message)

  1. 运行客户端脚本

在本地机器上运行以下命令执行客户端脚本:

python3 zmq_client.py

二十、使用Celery库进行分布式任务队列

Celery是一个简单、灵活且可靠的分布式任务队列系统,用于处理大量消息。

  1. 安装Celery和Redis

在本地机器和远程服务器上安装celery库和redis

pip install celery redis

  1. 启动Redis服务器

在远程服务器上启动Redis服务器:

redis-server

  1. 编写任务脚本

在本地机器上新建一个文件tasks.py并添加以下内容:

from celery import Celery

import subprocess

app = Celery('tasks', broker='redis://remote_server:6379/0')

@app.task

def run_script():

result = subprocess.run(['python3', '/path/to/your/script.py'], capture_output=True)

return result.stdout.decode()

  1. 启动Celery worker

在远程服务器上运行以下命令启动Celery worker:

celery -A tasks worker --loglevel=info

  1. 调用任务

在本地机器上新建一个文件client.py并添加以下内容:

from tasks import run_script

result = run_script.delay()

print(result.get())

  1. 运行客户端脚本

在本地机器上运行以下命令执行客户端脚本:

python3 client.py

通过以上方法,你可以在Shell中运行Python脚本,并根据不同的需求选择适合的方法。无论是直接运行、使用虚拟环境、远程执行还是分布式任务队列,每种方法都有其独特的优势和应用场景。希望这篇文章能为你提供全面而实用的参考。

相关问答FAQs:

在Shell中如何安装Python?
要在Shell中运行Python,首先需要确保你的系统上安装了Python。你可以通过在终端中运行python --versionpython3 --version来检查Python的安装情况。如果没有安装,可以根据你的操作系统使用包管理器进行安装,例如在Ubuntu上使用sudo apt install python3,在macOS上可以通过Homebrew安装,命令为brew install python

如何在Shell中执行Python脚本?
在Shell中执行Python脚本非常简单。你可以使用python script.pypython3 script.py命令来运行名为script.py的Python文件。确保你在终端中处于该脚本所在的目录,或者提供脚本的完整路径。

如何在Shell中进入Python交互式模式?
如果你希望在Shell中直接运行Python代码,可以进入Python交互式模式。在终端中输入pythonpython3后按下回车键,即可进入交互式命令行界面。在这里,你可以直接输入Python代码并立即查看输出,方便进行测试和调试。要退出交互式模式,可以输入exit()或使用Ctrl + D组合键。

相关文章