【问题标题】:Installing Python on a network drive for users with no write access为没有写入权限的用户在网络驱动器上安装 Python
【发布时间】:2019-11-22 09:08:04
【问题描述】:

我想知道是否有可能将 Python 安装在网络驱动器上以供仅具有读取和执行权限的多个 Windows 用户使用,而不会出现任何问题。据我所知,可以将 python 二进制文件添加到 PATH 变量并在另一个驱动器上运行 python 没有任何问题,但我想知道一些事情:

  • 我知道您可以将 Python 安装在 C: 驱动器以外的其他驱动器上,但不确定网络驱动器是否也可以这样做。

  • 这可以支持并发用户吗?就像两个人同时运行 python 脚本一样。

  • 没有写权限的用户是否仍然能够安装 python 模块?我希望只有对驱动器具有写入权限的用户才能执行此操作。

  • 这会对某些模块造成任何问题吗?

谢谢。

【问题讨论】:

    标签: python windows networking network-drive


    【解决方案1】:

    我是 Linux 用户,所以无法测试,但这似乎是一个常见问题,google 会在 similar 的问题中找到 lots 的答案

    尽我所能回答您的问题:

    1. 它当然应该支持“并发用户”,文件服务器甚至不知道程序正在运行,它只会看到网络上的设备打开/读取文件
    2. 如果用户没有写权限,他们显然无法在网络驱动器上安装东西,但他们仍然应该能够使用pip install --user requests 之类的东西在本地(即在他们自己的机器上)安装模块
    3. 我确信这会导致 一些 模块出现问题,但我不认为会出现很多问题。请注意,许多模块在未开发/测试的操作系统下运行时存在问题,并且大量 Python 工作发生在 Unix/Linux/OSX 机器上

    【讨论】:

    • 好吧,我找不到适用于我的用例的东西。
    • 无论如何,这回答了大多数问题,但您知道是否有办法限制在用户 PC 上安装模块?即使用户有管理员权限?
    • 这与 Python(以及一般计算机)的工作方式背道而驰。用户可以总是下载代码并运行它(特别是如果他们有管理员权限)。一旦用户明确地编写代码,这就会更加明显,例如他们可以找到“模块”的来源(例如在 github 上)并将代码的相关部分复制/粘贴到他们的源文件中。当他们运行它时,他们将“运行”该模块
    • 好的,我明白了。我在一个非常安全的环境中工作,我们希望控制 PC 中安装的内容,并试图找到一种方法来说服 IT 可以使用 Python 来完成,因为他们不喜欢获取未经事先批准,来自第三方的模块。如果这是不可能的,我想你的回答会被认为是有效的。
    • 基本上任何语言都是如此!举一个例子,如果你有一个启用了javascript的现代网络浏览器,你基本上可以做同样的事情。查看 Filesystem API,像 Pyodide 这样的东西可以让你访问在浏览器中本地运行的科学 python 生态系统。用户可以从其他地方的模块复制/粘贴代码并运行它们。您需要完善“非常安全”的含义,因为它非常含糊,发布到 security.stackexchange.com 可能也会有所帮助
    【解决方案2】:

    如果您希望每个人都拥有相同的开发环境: 尝试在远程文件夹上创建一个 python virtualenv,以便他们可以在需要时激活它。 https://virtualenv.pypa.io/en/stable/

    但如果你想做的是分发一个应用程序并希望每个人都拥有相同的 python,可以看看 pyinstaller 'An application to convert python scripts into stand-alone binaries'

    【讨论】:

    • 这并不是我真正想要的,因为我希望用户能够开发 Python 程序而无需添加或修改模块/库。
    猜你喜欢
    • 2012-03-14
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多