- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过此 freeCodeCamp video 完成简单的收藏品 NFT 教程. (我卡在了恰好从链接时间戳所在的位置开始的脚本上。)
对于那些无法打开视频的人,我正在尝试运行这个 brownie 命令:
brownie run scripts/deploy_and_create.py --network rinkeby
我收到以下错误:
dsine@DESKTOP-T74SG6U:/mnt/c/Users/dylan/projects/demos/nft-demo$ brownie run scripts/deploy_and_create.py --network rinkeby
Brownie v1.17.1 - Python development framework for Ethereum
NftDemoProject is the active project.
File "brownie/_cli/run.py", line 50, in main
return_value, frame = run(
File "brownie/project/scripts.py", line 53, in run
module = _import_from_path(script)
File "brownie/project/scripts.py", line 149, in _import_from_path
_import_cache[import_str] = importlib.import_module(import_str)
File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
File "<frozen, line line, in in
ModuleNotFoundError: No module named 'mnt.c.Users.dylan.projects'
我在 VSCode 中从 WSL Ubuntu 终端运行它。我也试过在 powershell 中运行脚本。我确保我使用的是 Python 3 和 WSL 2。我不确定这里发生了什么。
这是我的 deploy_and_create.py 代码:
from scripts.helpful_scripts import get_account
from brownie import SimpleCollectible
sample_token_uri = "https://ipfs.io/ipfs/Qmd9MCGtdVz2miNumBHDbvj8bigSgTwnr4SbyH6DNnpWdt?filename=0-PUG.json"
OPENSEA_URL = "https://testnets.opensea.io/assets/{}/{}"
def main():
account = get_account()
simple_collectible = SimpleCollectible.deploy({"from":account})
tx = simple_collectible.createCollectible(sample_token_uri, {"from": account})
tx.wait(1)
print(f"Awesome, you can view your NFT at {OPENSEA_URL.format(simple_collectible.address, simple_collectible.tokenCounter() - 1)}")
print("Please wait up to 20 minutes and hit the refresh metadata button.")
和我的 brownie-config.yaml:
dependencies:
- OpenZeppelin/openzeppelin-contracts@3.4.0
compiler:
solc:
remappings:
- '@openzeppelin=OpenZeppelin/openzeppelin-contracts@3.4.0'
dotenv: .env
谁能帮帮我?谢谢!
最佳答案
在我看来,问题源于文件 brownie/project/scripts.py 中的函数 _import_from_path
(该文件应该位于您的 eth-brownie 文件夹中,无论您安装它在哪里)。按照它的编写方式,它会错误地将 Users.username 识别为“不是模块”。
解决方案:将 _import_from_path 替换为以下内容
def _import_from_path(path: Path) -> ModuleType:
# Imports a module from the given path
import_str = "/" + "/".join(path.parts[1:-1] + (path.stem,))+'.py'
if import_str in _import_cache:
importlib.reload(_import_cache[import_str])
else:
spec = importlib.util.spec_from_file_location('.'+path.stem,import_str)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
_import_cache[import_str] = module
return _import_cache[import_str]
说明:import_str
现在被修改为反射(reflect)准确的文件位置而不是模块名称。 else:
block 现在通过指定文件位置导入模块,然后将该文件作为模块加载。
关于python - 在 WSL 中使用 python/brownie 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70452624/
我无法将 WebStorm 配置为在 WSL 中处理我的项目(这发生在我重新安装 Windows 操作系统和 WSL 之后)。我认为这个问题与 WSL 配置有关,但我找不到确切的问题。 我的项目中 E
我可以在 powershell 中使用以下命令将我的 ext4 分区挂载到 wsl-2 中: wsl --mount\\.\PHYSICALDRIVE4 --partition 1 但是,当我重新启动
我希望能够重新启动 WSL session 。这样做有点尴尬,因为 WSL 不使用 systemd 所以我们不能使用 reboot .在 WSL session 中,我们可以运行任何 Windows
我几乎完全使用 WSL,并且只切换到主窗口来浏览和运行 Windows 原生程序。我有一个位于 /mnt/c/myrepo 的 git 存储库.为了“安装”/mnt/c/myrepo 中的代码我需要将
如何在 WSL 2 上运行 Gitk? 我已经在 WSL 2 中安装了 Gitk。 安装 Gitk 后,我尝试运行它,但失败并显示以下错误日志: application-specific initia
如何在 WSL 2 上运行 Gitk? 我已经在 WSL 2 中安装了 Gitk。 安装 Gitk 后,我尝试运行它,但失败并显示以下错误日志: application-specific initia
我的 Windows 使用 Ubuntu 设置了 WSL。它已经工作了一段时间,直到我升级到 WSL2。 问题是:每次我启动我的电脑(或重新启动我的电脑)时,它都会失去从 Ubuntu 到 Windo
我的 Windows 安装了 Itellij IDEA 无法从 Ubuntu 访问 JDK(Ubuntu 安装在 WSL 上)。在运行应用程序时,我遇到了这个问题: 而且我无法在 Windows 运行
我正在努力弄清楚如何通过 WSL 中的 bash 命令启动新的“命令提示符”窗口。目标是启动第二个提示符,最好已经在 bash 中。 我已经尝试运行 cmd.exe 但这只会让我从 bash shel
在 Visual Studio 代码中选择 WSL 作为我的默认终端后,我无法打开终端窗口。终端窗口打开,屏幕上出现随机文本,然后终端关闭并显示一条错误消息:“终端进程以退出代码终止:42949672
我在这里和其他网站上搜索了很多相关的帖子,但没有解决我的问题。 如标题中所述,我正在努力在窗口操作系统的 linux 子系统上安装 docker 我用的是 win 10 家庭版,所以我已经安装了 Do
我正在从 WSL 运行 Android Studio。当我尝试使用模拟器时,我得到 "/dev/kvm" not found .我已经安装了 kvm 并且我已经确认在我的 BIOS 中启用了 vt-x
我正在运行 Windows 10,并且一直在 Windows Linux 子系统下使用 Ubuntu Linux 发行版。 我希望能够使用 Chrome.exe 或 google-chrome hea
我对 WSL 很陌生。我想在我的 win10 PC 上的 ubuntu shell 上运行 python 代码。此代码需要访问网络摄像头,但似乎网络摄像头未正确打开..我在网上查过,我发现1-2年前有
科技媒体 Phoronix 对 Windows 10 May 2020 中 WSL 和 WSL 2 的性能进行了测试,参与测试的发行版为 Ubuntu 20.04 on WSL/WSL2 ,以及 U
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - sudo sh -c 'ec
我在 PowerShell wsl pipenv run python ~/test.py 中运行以下命令并收到以下错误 /bin/bash: pipenv: command not found .如
有没有办法找出 WSL 的当前构建版本,即 Build 15042 - 我希望更新到此版本,按照步骤操作,但不确定它是否有效。 最佳答案 如果您要检查系统中安装的版本(我假设在更新到 Windows
我的防火墙(诺顿)阻止 WSL 2 使用互联网。我什至无法ping通谷歌。 当我关闭防火墙时,一切正常,当我再次打开它时,它不再起作用。 我必须在防火墙上设置哪些规则才能允许 WSL 通过?它适用于所
我目前正在寻求获得在 WSL 中运行的 MIPS 交叉编译器工具链,由 CLion 访问。 我遇到了一个关于 WSL 的奇怪问题。我已将以下内容添加到 .bashrc : STAGING_DIR="/
我是一名优秀的程序员,十分优秀!