我在Python 3.7中使用Anaconda发行版。在安装的软件包中,我有numpy,pandas等。在PyCharm IDE中,我已将Project Interpreter设置为通过Anaconda安装的python.exe的路径:C:\ Users \ my_user_name \ AppData \ Local \ Continuum \ anaconda3 \ python.exe
但是,当我尝试运行简单的python脚本时:
import numpy as np
print(np.pi)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
ImportError:导入多数组numpy扩展模块失败。您极有可能尝试导入失败的numpy构建。如果您使用的是numpy git repo,请尝试git clean -xdf(删除不受版本控制的所有文件)。否则,请重新安装numpy。
原始错误是:DLL加载失败:找不到指定的模块。
请参阅下面的完整错误消息:
追溯(最近一次通话):文件“ C:\ Users \ my_user_name \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numpy \ core__init __。py”,位于第16行。import multiarray ImportError:DLL加载失败:找不到指定的模块。
在处理上述异常期间,发生了另一个异常:
追溯(最近一次通话):文件“ C:/Users/my_user_name/Documents/TestMyApps/simpletest.py”,第1行,在导入numpy中作为np文件“ C:\ Users \ my_user_name \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numpy__init __。py“,第142行,位于。从numpy.lib的第13行,导入add_newdocs文件“ C:\ …
我创建了一个要部署在服务器上的 Django REST 框架项目。我没有对服务器的管理员访问权限,因此,我发现确保所有项目依赖项(例如 Anaconda 发行版)在服务器上可用的唯一方法是为我的项目创建一个 docker 映像,然后创建服务器上的相应容器,然后从那里运行它。
在我的项目中,我有一个使用 subprocess.Popen() 调用的 python 脚本 (mymain.py)。这在本地工作正常,并且 subprocess.Popen() 完成它应该做的一切。
但是,当我尝试从 docker 容器执行此操作时,似乎完全跳过了 subprocess.Popen() 行 [未调用 mymain.py]。
对于 docker,我创建了一个 docker-compose.yml 文件,并在命令提示符中键入:
docker-compose up
Run Code Online (Sandbox Code Playgroud)
我没有看到任何错误,一切似乎都运行良好,但是 subprocess.Popen() 似乎不起作用。
mymain.py 第一行是:
print('Testing if subprocess called mymain.py!!!')
Run Code Online (Sandbox Code Playgroud)
在另一个文件中,我调用 subprocess.Popen()。我尝试打印出错误,但不幸的是,stdout 和 stderr 都没有返回:
p = subprocess.Popen(['python', mymain_path, args], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out, err = p.communicate()
print('SUBPROCESS ERROR: ' + str(err))
print('SUBPROCESS stdout: ' + str(out.decode()))
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
SUBPROCESS ERROR: None
SUBPROCESS stdout:
Run Code Online (Sandbox Code Playgroud)
如您所见,我的 main.py 的第一行从未打印过...
但是,当我通过键入命令提示符在本地执行此操作时:
python manage.py runserver 9000 …Run Code Online (Sandbox Code Playgroud) 我很难模拟一个对象的实例。
我想编写一个单元测试来测试使用类实例的“my_func”函数。我知道如何模拟类函数,但是,我不知道如何模拟类(对象)本身(而不是函数)的实例。
在我的模块文件中:
# my_module.py
import fancypackage1
import fancypackage2
def my_func():
x = fancypackage1.SomeClass.somefunction() # I know how to mock this
myclient = fancypackage2.Client() # I don't know how to mock this
myresult = do_something(myclient, x) # I know how to mock this
return myresult
Run Code Online (Sandbox Code Playgroud)
在我的测试文件中:
# test_my_module.py
import pytest
import mock
import fancypackage1
import fancypackage2
from my_module import my_func
def test_my_func(mocker):
mock_someclass_somefunction = mocker.patch('my_module.fancypackage1.SomeClass.somefunction')
mock_someclass_somefunction.return_value = 'hello'
mock_client = mocker.patch.object(fancypackage2.Client, '__init__') # TypeError: __init__() should return None, not 'MagicMock' …Run Code Online (Sandbox Code Playgroud) 我正在尝试从中提取数据的网页.通过查看页面Source中的HTML,我可以在脚本标记中找到我感兴趣的数据.它看起来如下:
<html>
<script type="text/javascript">
window.gon = {};
gon.default_profile_mode = false;
gon.user = null;
gon.product = "shoes";
gon.books_jsonarray = [
{
"title": "Little Sun",
"authors": [
"John Smith"
],
edition: 2,
year: 2009
},
{
"title": "Little Prairie",
"authors": [
"John Smith"
],
edition: 3,
year: 2009
},
{
"title": "Little World",
"authors": [
"John Smith",
"Mary Neil",
"Carla Brummer"
],
edition: 3,
year: 2014
}
];
</script>
</html>
Run Code Online (Sandbox Code Playgroud)
我想要实现的是,使用其URL调用网页,然后从JavaScript中检索'gon'变量并将其存储在C#变量中.换句话说,在C#中,我希望有一个数据结构(例如字典),它将保存'gon'的值.
我已经尝试过研究如何通过C#WebBrowser获取JavaScript中定义的变量,这就是我发现的:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Net;
using System.Runtime.InteropServices; …Run Code Online (Sandbox Code Playgroud) python-3.x ×3
c# ×1
django ×1
docker ×1
html ×1
javascript ×1
mocking ×1
numpy ×1
pycharm ×1
pytest ×1
pytest-mock ×1
python ×1
subprocess ×1
web ×1