【问题标题】:First steps in Python (Jython): ImportingPython (Jython) 的第一步:导入
【发布时间】:2011-12-02 14:43:40
【问题描述】:

我即将开始在 WinXP(后来的 Win7)上使用 jython 编写 python。在我尝试了命令行中的开箱即用解释器之后,我想尝试编写独立模块。

我的问题是:

我必须将 .py 文件放在哪里?

如何运行它们?

如何导入与“主”脚本不在同一目录中的脚本? (从相对/绝对路径导入脚本/类/函数) 我计划创建一个工作区文件夹(例如“C:\pythonWorkspace”),在其中构建自己的 python 脚本库,以便在多个项目中导入它们。

编辑:添加使用的操作系统:WinXP/Win7

【问题讨论】:

  • 使用 linux?win?基本上你可以添加一个位置 pythonpath 或者只是将模型放在 python 搜索的 libs\site-packages 中。您可以使用 python 解释器从命令行运行一个模块(如果它有 __name__=="main" 部分),使用类似“python modulename”
  • 这是否意味着我必须将所有文件放入 python\libs 文件夹中?如何引用存储在 C:\myProject 中的 .py 文件?我不太清楚如何解释 'name' 表达式

标签: python jython modularity


【解决方案1】:

相对/绝对路径应该在 PYTHONPATH 中,示例代码:

import os,sys
#change to your path
sys.path.append(os.path.join(os.path.dirname(__file__),'lib'))

【讨论】:

  • 'lib' 表示路径,file 表示路径中的文件名?
  • @poeschlorn: 不,__file__ 是包含当时正在运行的代码的文件的文件名。它的意思是“这个文件
  • 好的。所以我是对的,这个 sn-p 会将脚本的路径(通过 file)添加到我的操作系统的 PATH 环境变量中?
  • 假设你的脚本文件和子文件夹'lib'在同一个文件夹中,sn-p会将'lib'文件夹文件添加到PYTHONPATH。来自 python doc:sys.path 是一个字符串列表,用于指定模块的搜索路径。
  • 好的,但是“Lib”不是路径的一部分(python根路径的子目录)吗?我试图将 C:\folder 等任何其他目录导入到路径中......它不起作用:(
【解决方案2】:

您可以在 lib\site-packages 中添加一个 pth 文件,其中包含类似 (example.pth):

c:\myProject

然后你可以按名称导入模块

在您编写的模块中 - 如果您希望它从命令行(或从空闲的打开菜单而不是运行)运行某些东西 - 在您编写的模块的末尾:

if __name__=="main":
    do something
    print something
    run somefunction()#from the module

【讨论】:

    猜你喜欢
    • 2011-03-16
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多