【问题标题】:How do I run a .py script?如何运行 .py 脚本?
【发布时间】:2018-12-16 16:08:09
【问题描述】:

我上周刚开始学习 Python 以自动化我所做的一些事情(感谢automatedtheboringstuff.com)。假设我对编程一无所知。我唯一知道的是 HTML 和 CSS。

我已经创建了一个简单的自动化工作流程,我想改进的不是代码(可能在未来,因为它还没有完成),而是我如何在两台笔记本电脑上维护我的设置/程序——两个 Mac OS 都在 High Sierra 上运行.

我有一个 .py 文件,其中包含我的自动化工作流程。我不知道把它放在哪里。它目前位于我的 Dropbox 中,因此我可以在笔记本电脑 1 和笔记本电脑 2 上使用它。

我还为每台机器创建了一个 virtualenv,并且还做了 requirements.txt 的事情(只是为未来做准备)。该目录位于用户名/python/project_name 上。

我在一些帖子中读到,这些文件和其他资源可以存在于任何地方,无论是否在每个 virtualenv 中。这只是一种偏好。我还读到,不建议将 virtualenv 本身放在 Dropbox 等应用程序中(这就是我在每台笔记本电脑上分开它的原因)。

我经常在两台笔记本电脑之间切换。切换时,包含包的环境并不太关心我。困扰我的是其他文件。例如,我需要一张图片,它必须在两台笔记本电脑上都可用,所以我的解决方案是在 Dropbox 中也有一个 Resources 文件夹。目前看起来是这样的:

  • 投递箱
    • 项目
      • 项目 1 文件(图像等)
      • 项目 2 个文件(图像等)
    • 工作流程(这将包含我完成的 .py 文件)

我读过一些关于 virtualenvwrapper 的东西,但还没有看过。也许将来当我有更多的项目要管理时。因为现在,就这一个。

最后,我注意到每次打开终端并激活我的 virtualenv 时,文件目录都在用户/用户名中

如何将其设置为默认为 Dropbox/Projects/project_name?我总是必须使用 chdir() 来设置它。这样,当我有多个项目(和 virtualenv)时,我不必担心文件加载/保存的位置。

最后,如何运行 .py 脚本?如果我打开 IDLE,在那里打开 .py 文件,然后使用 f5,它会正常运行。但据我所知,这并没有考虑我设置的 virtualenv。那是对的吗?

我尝试右键单击,然后打开方式 > Python Launcher .py 文件。我收到一条错误消息,说没有找到模块。似乎它没有加载正确的virtualenv。所以我制作的文件一定有问题。

然后我读到了#!你放在 .py 文件的开头,但我不明白。有人可以进一步解释吗?这就是我的文件无法正确加载的原因吗?

感谢您的帮助!

【问题讨论】:

  • 建议:代码使用 Github(或类似服务)而不是 Dropbox。然后您可以更轻松地跟踪更改(并撤消错误的更改)
  • 我去看看。我是新手,所以我真的不知道所有这些是如何工作的。

标签: python-3.x macos automation


【解决方案1】:

您可以使用以下命令从命令行运行 .py 脚本:

python test.py

这告诉终端在 python 解释器中运行 test.py 并将输出发送到终端,就像在 IDLE 中运行它一样。如果您的 .py 脚本不在当前目录中并且您不想更改目录,则可以使用它的绝对路径访问它:

python /Users/username/Dropbox/Workflows/test.py

只要您已经激活了您的 virtualenv,它就应该只使用您添加到您的 virtualenv 中的库来运行您的脚本。此外,一旦您的 virtualenv 被激活,您可以使用“cd”在目录中移动,它会随身携带您的 virtualenv。

【讨论】:

  • 太棒了。终于让它跑起来了。将 os.chdir 包含在 .py 文件中是一种好习惯吗?如果没有,有没有办法为每个 virtualenv 设置默认工作目录?
  • 你有一个独特的情况。就个人而言,我从未使用过 os.chdir()。我认为您最安全的选择是激活您的 virtualenv,然后手动导航到您的保管箱目录以工作。你知道如何在终端中导航目录吗?如果你不这样做,你应该。大多数编码人员可以通过终端完成他们需要做的所有事情,而无需鼠标。这是一个简短的视频:youtube.com/watch?v=AO0jzD1hpXc.
  • 感谢您的视频。是的,我愿意。这就是我尝试测试文件时一直在做的事情。我想我只是想寻找一种更“懒惰”的方式来做到这一点,而不必每次都 cd。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2021-08-13
相关资源
最近更新 更多