【问题标题】:Python3 use installed modules on another computerPython3 在另一台计算机上使用已安装的模块
【发布时间】:2017-08-28 02:15:44
【问题描述】:

我已经下载了 python 3 的 pycrypto 模块,所以我可以在我的 python 代码中使用 AES。 (例如,如果我有一个名为 encodeUsingAES.py 的代码)

但是,如果我只是将 encodeUsingAES.py 复制到另一台计算机并运行它,这将不起作用吗?因为它没有安装pycrypto模块所以会弹出一堆错误。

我尝试将 pycrypto 中的 Crypto 文件夹复制到与我的 .py 文件相同的目录中,但没有成功。

我是否可以将我需要的所有文件都放在同一个目录中,这样当我压缩并发送文件夹时,收件人可以运行 .py 文件而无需安装额外的模块?

谢谢!

from Crypto import Random
from Crypto.Cipher import AES

编辑: 试过了还是不行

import sys
sys.path.append("/pycrypto")
from Crypto import Random
from Crypto.Cipher import AES

$ python3 testCrypto.py
  Traceback (most recent call last):
    File "testCrypto.py", line 5, in <module>
    from Crypto import Random
  ImportError: No module named 'Crypto'

import sys
sys.path.append("pycrypto/lib")
from Crypto import Random
from Crypto.Cipher import AES

$ python3 testCrypto.py
  Traceback (most recent call last):
    File "testCrypto.py", line 5, in <module>
      from Crypto import Random
     File "pycrypto/lib/Crypto/Random/__init__.py", line 28, in <module>
      from Crypto.Random import OSRNG
    File "pycrypto/lib/Crypto/Random/OSRNG/__init__.py", line 32, in <module>
      from Crypto.Random.OSRNG.posix import new
    File "pycrypto/lib/Crypto/Random/OSRNG/posix.py", line 66
      except IOError, e:

【问题讨论】:

  • 如果你使用路径/pycrypto,则表示pycrypto是你系统根目录下的一个文件夹。如果您删除 /,则该目录应该与您的工作目录相关。
  • @PinkFluffyUnicorn 同样的事情,文件“testCrypto.py”,第 5 行,在 from Crypto import Random ImportError: No module named 'Crypto'

标签: python-3.x aes pycrypto


【解决方案1】:

如果您复制完整的文件夹,您应该将其添加到您的路径以便能够导入它。

import sys
sys.path.append("/path/to/your/crypto/directory")

from Crypto import Random

如果pycrypto文件夹直接放在你的项目文件夹中,下面的语句应该可以工作。

sys.path.append('./pycrypto')

【讨论】:

  • 但是 Crypto.Random 中的很多文件都有“从 Crypto import Someotherthing”,他们没有 sys.path.append 所以他们找不到正确的文件?
  • 我认为 sys.path 已链接到您的 Python 会话,因此一旦您修改了路径,它应该在所有 Python 文件中都可见。或者您是否遇到过这方面的问题?
猜你喜欢
  • 2016-02-16
  • 1970-01-01
  • 1970-01-01
  • 2016-04-09
  • 2016-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-29
相关资源
最近更新 更多