如何在命令行中使用 Python 脚本而无需 cd 到其目录?是 PYTHONPATH 吗?

2023-12-30

我如何利用 PYTHONPATH?当我尝试在路径中运行脚本时,该文件不是 成立。当我 cd 到保存脚本的目录时,脚本将运行。那么有什么好处 Python路径?

$ echo $PYTHONPATH
:/home/randy/lib/python

$ tree -L 1 '/home/randy/lib/python' 
/home/randy/lib/python
├── gbmx_html.py
├── gbmx.py
├── __init__.py
├── __pycache__
├── scripts
└── yesno.py

$ python gbmx.py -h
python: can't open file 'gbmx.py': [Errno 2] No such file or directory

$ cd '/home/randy/lib/python'

cd 到文件目录后,它运行..

$ python gbmx.py -h
usage: gbmx.py [-h] [-b]

为什么我不能使用 PYTHONPATH?


我想你有点困惑。 PYTHONPATH 设置搜索路径输入python 模块,而不是像您尝试的那样执行它们。

PYTHONPATH 增加模块文件的默认搜索路径。这 格式与 shell 的 PATH 相同:一个或多个目录 由 os.pathsep 分隔的路径名(例如 Unix 上的冒号或分号 在 Windows 上)。不存在的目录将被默默忽略。

除了普通目录之外,各个 PYTHONPATH 条目还可以 引用包含纯 Python 模块的 zip 文件(源代码或 编译形式)。扩展模块无法从 zip 文件导入。

默认搜索路径取决于安装,但通常 以 prefix/lib/pythonversion 开头(参见上面的 PYTHONHOME)。这是 始终附加到 PYTHONPATH。

前面的搜索路径中会插入一个额外的目录 PYTHONPATH,如上面接口选项中所述。搜索 路径可以在Python程序中作为变量进行操作 系统路径。

http://docs.python.org/2/using/cmdline.html#envvar-PYTHONPATH http://docs.python.org/2/using/cmdline.html#envvar-PYTHONPATH

您正在寻找的是 PATH。

export PATH=$PATH:/home/randy/lib/python 

但是,要将 python 脚本作为程序运行,您还需要设置shebang http://en.wikipedia.org/wiki/Shebang_%28Unix%29第一行为Python。像这样的东西应该有效:

#!/usr/bin/env python

并赋予其执行权限:

chmod +x /home/randy/lib/python/gbmx.py

那么你应该能够简单地运行gmbx.py来自任何地方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在命令行中使用 Python 脚本而无需 cd 到其目录?是 PYTHONPATH 吗? 的相关文章

  • sklearn DeprecationWarning 数组的真值

    从文档中运行 rasa core 示例 python3 m rasa core run d models dialogue u models nlu default current 并在对话框中的每条消息后获取此错误输出 sklearn D
  • 如何测试使用 XCom 的 Apache Airflow 任务

    我正在尝试找出一种测试 DAG 的方法 其中有几个任务使用 XCom 进行通信 由于控制台命令只允许我从 DAG 运行任务 有没有一种方法可以测试通信而无需通过 UI 运行 DAG Thanks 这是一种对我有用的方法 尽管 Airflow
  • 如何忽略传递给函数的意外关键字参数?

    假设我有一些功能 f def f a None print a 现在 如果我有一本字典 比如dct a Foo 我可以打电话f dct 并得到结果Foo打印 但是 假设我有一本字典dct2 a Foo b Bar 如果我打电话f dct2
  • Python sqlite3参数化删除表

    我在 python 中删除 sqlite3 表时遇到问题 我正在使用标准sqlite3模块 self conn sqlite3 connect sql drop table self conn execute sql u table nam
  • 蜘蛛内的Scrapyd jobid值

    Scrapy 框架 Scrapyd 服务器 我在获取蜘蛛内部的 jobid 值时遇到一些问题 将数据发布到后http localhost 6800 schedule json http localhost 6800 schedule jso
  • Spyder 导入模块出错

    我正在尝试在 Spyder 中使用 sklearn 一开始 当我尝试导入它时 我收到 ImportError No module named sklearn 然后我用 PYTHONPATH 管理器设置 PATH 然后使用工具菜单中的 更新模
  • Django 未在 404 页面上应用应用程序中的 CSS 文件

    姜戈3 0 8 Python 3 7 x 我有一个包含一些应用程序的 Django 项目 我正在尝试为 400 403 404 500 错误制作一些 默认 错误页面 我已经这样做了 并显示了适当的模板 但没有任何样式或 JS 在 404 错
  • Unix网络编程澄清

    我正在翻阅这本经典书籍Unix网络编程 https rads stackoverflow com amzn click com 0139498761 当我偶然发现这个程序时 第 6 8 节 第 179 180 页 include unp h
  • Windows Defender 检测 Python EXE 为木马

    我制作了一个 Python 脚本 将 Windows 目录以 zip 形式邮寄给我 我使用 sched 模块添加了一个调度程序 每小时重复一次 我试图制作一个简单的同步应用程序供个人使用 在 Windows 启动时启动 我使用将其转换为 e
  • Bash:将输出传输到后台进程?

    我想将一个进程放入后台 然后多次将数据传递给它 例如 cat The command I want to write into cat pid Getting the process id of the cat process echo h
  • 了解 asyncio 已经运行的永久循环和挂起的任务

    我在理解如何将新任务挂起到已经运行的事件循环中时遇到问题 这段代码 import asyncio import logging asyncio coroutine def blocking cmd while True logging in
  • 从主机名中提取域名

    是否有一种编程方式可以从给定的主机名查找域名 给出 gt www yahoo co jp 返回 gt yahoo co jp 有效但非常慢的方法是 拆分为 并从左侧删除 1 个组 使用 dnspython 加入并查询 SOA 记录 当返回有
  • 是否有更矢量化的方法来沿轴执行 numpy.outer ?

    gt gt gt x np array a0 a1 b0 b1 gt gt gt y np array x0 x1 y0 y1 gt gt gt iterable np outer x i y i for i in xrange x sha
  • python:是否有用于对输入流进行分块的库函数?

    我想对输入流进行分块以进行批处理 给定一个输入列表或生成器 x in 1 2 3 4 5 6 我想要一个能够返回该输入块的函数 说 如果chunk size 4 then x chunked 1 2 3 4 5 6 这是我一遍又一遍地做的事
  • PyCharm - 如何挂起所有线程

    我们使用 PyCharm 5 0 1 进行多线程调试 当它在断点处停止时 只有特定线程停止 而所有其他线程继续 这使得 冻结时刻 和检查参数值以及其他线程的当前状态变得困难 当其中一个线程在断点处停止时 是否可以挂起所有线程 这在最新的 P
  • Scrapy的redirect_urls异常.KeyError

    我是 Scrapy 和 Python 的新手 最近推出了我的第一个蜘蛛 有一个功能似乎以前有效 但现在它只适用于我试图废弃的一些网站 代码行是 item url direct response request meta redirect u
  • Python 队列 get()/task_done() 问题

    我的消费者端队列 m queue get queue task done
  • Flask 扩展未在 app.extensions 中注册

    我想访问在我的 Flask 应用程序上注册的一些扩展 我尝试使用app extensions 但我初始化的一些扩展不在字典中 from flask import current app current app extensions get
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • django admin 中内联模型的分页器

    我有这个简单的 django 模型 由一个传感器和特定传感器的值组成 每个日射强度计的值数量很多 gt 30k 是否可以以某种方式分页PyranometerValues在特定日期或一般情况下将分页器应用于管理内联视图 class Pyran

随机推荐

  • 如何在 Dart 中根据表及其行填充列表?

    我想基于 HTML 表填充对象列表 假设我有以下课程 class Employee String name String department num salary methods 在我的 HTML 中 我有下表 table class t
  • ios应用程序启动时崩溃

    我开始在我的 iPhone 应用程序中使用 crashlytics 似乎它在启动过程中对某些用户来说崩溃了 或者我猜测是启动过程 这是堆栈跟踪 Fatal Exception NSInvalidArgumentException NSNul
  • 不兼容的 RemoteServiceException:此应用程序已过期,请单击浏览器上的刷新按钮

    我的 GWT 项目运行良好 但今天 经过一些更改并添加新功能后 不执行异步调用 例外情况是 此应用程序已过期 日期 请单击浏览器上的刷新按钮 所有其他 执行异步调用 An IncompatibleRemoteServiceException
  • 一些带有 PHP 条件的 MySql 查询

    背景 我想在 PHP Web 应用程序中匹配用户 当用户进入特定页面时 他将被放入虚拟池中 该池被释放为以下 MySql 表 search table id userId parameter 每个用户都在检查该表中是否有另一个用户准备好匹配
  • 网格未显示(全黑)

    我不想回到昨天的同一问题 但是在我能够使用该功能打开和关闭网格之前 我首先需要知道我的网格是否真正工作 我一直在制作新项目整晚都试图显示网格 但它没有显示 屏幕总是黑的 什么也没有 include include freeglut h Op
  • 通过 JavaScript 打开 Outlook

    有谁知道如何使用 Javascript 打开 Outlook 我在使用此代码时遇到异常 在 IE6 中 var outlookApp new ActiveXObject Outlook Application 你绝对可以做到这一点 代码如下
  • 检测 NSString 是否包含...?

    如何检测字符串中是否包含某个单词 例如 我下面有一个字符串 内容如下 Here is my string 我想知道是否可以检测字符串中的单词 例如 is 我会这样做 NSString someString Here is my string
  • 在 ruby​​ 上使用 xpath 获取 html 片段的前几个元素

    对于像博客这样的项目 我想从 Markdown 生成的 html 片段中获取前几个段落 标题 列表或字符范围内的任何内容 以显示为摘要 所以如果我有 h1 hello world h1 p Lets say these are 100 ch
  • 为什么基于指针交换两个值在函数作用域之外不起作用?

    我已经很多年没有用 C 编程了 所以我决定刷新一下我对指针的记忆 在两个数字之间交换的经典示例中 示例是 void swapPointersClassic double num1 double num2 double temp temp n
  • Stripe - 更改计划后,在当前周期结束之前不会为新订阅计费

    我想让用户更改他们的订阅计划 但转换后将不予退还 如果我将按比例设置为 false 则 stripe 将立即为新订阅计费 例如 如果用户在 2018 年 6 月订阅了包年套餐 并希望在 2018 年 10 月更改为包月套餐 由于当前周期尚未
  • 关于 Haskell 中随机数的另一个问题

    我正在尝试制作一个版本Pokemon Gold and Silver 的 Voltorb 游戏 https bulbapedia bulbagarden net wiki Voltorb Flip在哈斯克尔 现在 为了生成板 我想要一个 l
  • go 如何计算映射中键的哈希值?

    Go 如何计算映射中键的哈希值 它真的是独一无二的吗 是否可以用于其他结构 我想对于像这样的原始键来说很容易int或不可变的string但这对于复合结构来说似乎并不简单 语言规范没有说明 这意味着它可以随时更改 或者在实现之间有所不同 哈希
  • Android-在两个视图之间绘制线

    下面是我的程序 我在框架中创建了三个新视图 单击两个不同的视图时 我想在视图之间画一条线 我正在尝试弄清楚如何做到这一点 Ball ball1 new Ball this 100 100 45 Ball ball2 new Ball thi
  • 在字典内添加字典中的键值对

    我有一个字典 它有一个字符串的映射和一个字典 如何在内部字典 中添加键值对 Dictionary
  • 使用 IdentityServer3 保护 IdentityManager

    在我的设置中 IdentityManager 位于 IdentityServer 的同一主机上 所有必需的配置都在数据库上 为了创建我的设置 我已经考虑了这个问题 https stackoverflow com q 29938538 431
  • 使用haproxy的http请求到https请求

    我有一种情况 我想使用 haproxy 将所有 http 请求重定向到 https 请求 假设我有一台安装了 haproxy 的服务器 x 和一台运行实际服务的服务器 y 使用 ssl 现在 我希望 haproxy 接受 http 请求并通
  • 检查两个数学答案是否相等

    我正在用 python 编写一个小应用程序 让用户回答数学问题 我遇到的问题是检查他们的答案 假设有这样一个问题 因式分解x 2 3x 2 有不同的方法可以回答这个问题 例如 x 1 x 2 x 2 x 1 2 x x 1 etc 是否有一
  • NUnit 不运行套件测试

    我在 NUnit 中创建了一个测试套件 它引用了各种程序集中的几个不同的单元测试装置 我几乎使用了来自的示例代码 namespace NUnit Tests using System using NUnit Framework using
  • 更改 TreeView ItemsPanel 方向没有效果

    默认ItemsPanel of a TreeView is a StackPanel具有默认方向Vertical 我改变了方向StackPanel to Horizontal
  • 如何在命令行中使用 Python 脚本而无需 cd 到其目录?是 PYTHONPATH 吗?

    我如何利用 PYTHONPATH 当我尝试在路径中运行脚本时 该文件不是 成立 当我 cd 到保存脚本的目录时 脚本将运行 那么有什么好处 Python路径 echo PYTHONPATH home randy lib python tre